<!doctype html><html><head><meta charset="utf-8"/></head><body><graph-app></graph-app><script>/*! For license information please see index.js.LICENSE.txt */
(()=>{var e={6523:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var i=n(1601),r=n.n(i),o=n(6314),a=n.n(o)()(r());a.push([e.id,"html,\nbody,\ngraph-app {\n  height: 100%;\n  margin: 0;\n  font-family: Roboto, sans-serif;\n}",""]);const s=a},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",i=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),i&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),i&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,i,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(i)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(a[l]=!0)}for(var c=0;c<e.length;c++){var d=[].concat(e[c]);i&&a[d[0]]||(void 0!==o&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=o),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),r&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=r):d[4]="".concat(r)),t.push(d))}},t}},1601:e=>{"use strict";e.exports=function(e){return e[1]}},6246:(e,t,n)=>{e.exports={graphlib:n(8191),layout:n(8202),debug:n(8909),util:{time:n(3988).time,notime:n(3988).notime},version:n(7038)}},6822:(e,t,n)=>{"use strict";var i=n(6857),r=n(2031);e.exports={run:function(e){var t="greedy"===e.graph().acyclicer?r(e,function(e){return function(t){return e.edge(t).weight}}(e)):function(e){var t=[],n={},r={};return i.forEach(e.nodes(),(function o(a){i.has(r,a)||(r[a]=!0,n[a]=!0,i.forEach(e.outEdges(a),(function(e){i.has(n,e.w)?t.push(e):o(e.w)})),delete n[a])})),t}(e);i.forEach(t,(function(t){var n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,i.uniqueId("rev"))}))},undo:function(e){i.forEach(e.edges(),(function(t){var n=e.edge(t);if(n.reversed){e.removeEdge(t);var i=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,i)}}))}}},135:(e,t,n)=>{var i=n(6857),r=n(3988);function o(e,t,n,i,o,a){var s={width:0,height:0,rank:a,borderType:t},l=o[t][a-1],c=r.addDummyNode(e,"border",s,n);o[t][a]=c,e.setParent(c,i),l&&e.setEdge(l,c,{weight:1})}e.exports=function(e){i.forEach(e.children(),(function t(n){var r=e.children(n),a=e.node(n);if(r.length&&i.forEach(r,t),i.has(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var s=a.minRank,l=a.maxRank+1;s<l;++s)o(e,"borderLeft","_bl",n,a,s),o(e,"borderRight","_br",n,a,s)}}))}},4850:(e,t,n)=>{"use strict";var i=n(6857);function r(e){i.forEach(e.nodes(),(function(t){o(e.node(t))})),i.forEach(e.edges(),(function(t){o(e.edge(t))}))}function o(e){var t=e.width;e.width=e.height,e.height=t}function a(e){e.y=-e.y}function s(e){var t=e.x;e.x=e.y,e.y=t}e.exports={adjust:function(e){var t=e.graph().rankdir.toLowerCase();"lr"!==t&&"rl"!==t||r(e)},undo:function(e){var t=e.graph().rankdir.toLowerCase();"bt"!==t&&"rl"!==t||function(e){i.forEach(e.nodes(),(function(t){a(e.node(t))})),i.forEach(e.edges(),(function(t){var n=e.edge(t);i.forEach(n.points,a),i.has(n,"y")&&a(n)}))}(e),"lr"!==t&&"rl"!==t||(function(e){i.forEach(e.nodes(),(function(t){s(e.node(t))})),i.forEach(e.edges(),(function(t){var n=e.edge(t);i.forEach(n.points,s),i.has(n,"x")&&s(n)}))}(e),r(e))}}},9859:e=>{function t(){var e={};e._next=e._prev=e,this._sentinel=e}function n(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function i(e,t){if("_next"!==e&&"_prev"!==e)return t}e.exports=t,t.prototype.dequeue=function(){var e=this._sentinel,t=e._prev;if(t!==e)return n(t),t},t.prototype.enqueue=function(e){var t=this._sentinel;e._prev&&e._next&&n(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t},t.prototype.toString=function(){for(var e=[],t=this._sentinel,n=t._prev;n!==t;)e.push(JSON.stringify(n,i)),n=n._prev;return"["+e.join(", ")+"]"}},8909:(e,t,n)=>{var i=n(6857),r=n(3988),o=n(8191).Graph;e.exports={debugOrdering:function(e){var t=r.buildLayerMatrix(e),n=new o({compound:!0,multigraph:!0}).setGraph({});return i.forEach(e.nodes(),(function(t){n.setNode(t,{label:t}),n.setParent(t,"layer"+e.node(t).rank)})),i.forEach(e.edges(),(function(e){n.setEdge(e.v,e.w,{},e.name)})),i.forEach(t,(function(e,t){var r="layer"+t;n.setNode(r,{rank:"same"}),i.reduce(e,(function(e,t){return n.setEdge(e,t,{style:"invis"}),t}))})),n}}},8191:(e,t,n)=>{var i;try{i=n(8362)}catch(e){}i||(i=window.graphlib),e.exports=i},2031:(e,t,n)=>{var i=n(6857),r=n(8191).Graph,o=n(9859);e.exports=function(e,t){if(e.nodeCount()<=1)return[];var n=function(e,t){var n=new r,a=0,s=0;i.forEach(e.nodes(),(function(e){n.setNode(e,{v:e,in:0,out:0})})),i.forEach(e.edges(),(function(e){var i=n.edge(e.v,e.w)||0,r=t(e),o=i+r;n.setEdge(e.v,e.w,o),s=Math.max(s,n.node(e.v).out+=r),a=Math.max(a,n.node(e.w).in+=r)}));var c=i.range(s+a+3).map((function(){return new o})),d=a+1;return i.forEach(n.nodes(),(function(e){l(c,d,n.node(e))})),{graph:n,buckets:c,zeroIdx:d}}(e,t||a),c=function(e,t,n){for(var i,r=[],o=t[t.length-1],a=t[0];e.nodeCount();){for(;i=a.dequeue();)s(e,t,n,i);for(;i=o.dequeue();)s(e,t,n,i);if(e.nodeCount())for(var l=t.length-2;l>0;--l)if(i=t[l].dequeue()){r=r.concat(s(e,t,n,i,!0));break}}return r}(n.graph,n.buckets,n.zeroIdx);return i.flatten(i.map(c,(function(t){return e.outEdges(t.v,t.w)})),!0)};var a=i.constant(1);function s(e,t,n,r,o){var a=o?[]:void 0;return i.forEach(e.inEdges(r.v),(function(i){var r=e.edge(i),s=e.node(i.v);o&&a.push({v:i.v,w:i.w}),s.out-=r,l(t,n,s)})),i.forEach(e.outEdges(r.v),(function(i){var r=e.edge(i),o=i.w,a=e.node(o);a.in-=r,l(t,n,a)})),e.removeNode(r.v),a}function l(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}},8202:(e,t,n)=>{"use strict";var i=n(6857),r=n(6822),o=n(8209),a=n(9361),s=n(3988).normalizeRanks,l=n(2948),c=n(3988).removeEmptyRanks,d=n(6353),h=n(135),p=n(4850),u=n(1453),f=n(3776),g=n(3988),m=n(8191).Graph;e.exports=function(e,t){var n=t&&t.debugTiming?g.time:g.notime;n("layout",(function(){var t=n("  buildLayoutGraph",(function(){return function(e){var t=new m({multigraph:!0,compound:!0}),n=z(e.graph());return t.setGraph(i.merge({},y,C(n,v),i.pick(n,_))),i.forEach(e.nodes(),(function(n){var r=z(e.node(n));t.setNode(n,i.defaults(C(r,b),x)),t.setParent(n,e.parent(n))})),i.forEach(e.edges(),(function(n){var r=z(e.edge(n));t.setEdge(n,i.merge({},S,C(r,w),i.pick(r,E)))})),t}(e)}));n("  runLayout",(function(){!function(e,t){t("    makeSpaceForEdgeLabels",(function(){!function(e){var t=e.graph();t.ranksep/=2,i.forEach(e.edges(),(function(n){var i=e.edge(n);i.minlen*=2,"c"!==i.labelpos.toLowerCase()&&("TB"===t.rankdir||"BT"===t.rankdir?i.width+=i.labeloffset:i.height+=i.labeloffset)}))}(e)})),t("    removeSelfEdges",(function(){!function(e){i.forEach(e.edges(),(function(t){if(t.v===t.w){var n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}}))}(e)})),t("    acyclic",(function(){r.run(e)})),t("    nestingGraph.run",(function(){d.run(e)})),t("    rank",(function(){a(g.asNonCompoundGraph(e))})),t("    injectEdgeLabelProxies",(function(){!function(e){i.forEach(e.edges(),(function(t){var n=e.edge(t);if(n.width&&n.height){var i=e.node(t.v),r={rank:(e.node(t.w).rank-i.rank)/2+i.rank,e:t};g.addDummyNode(e,"edge-proxy",r,"_ep")}}))}(e)})),t("    removeEmptyRanks",(function(){c(e)})),t("    nestingGraph.cleanup",(function(){d.cleanup(e)})),t("    normalizeRanks",(function(){s(e)})),t("    assignRankMinMax",(function(){!function(e){var t=0;i.forEach(e.nodes(),(function(n){var r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=i.max(t,r.maxRank))})),e.graph().maxRank=t}(e)})),t("    removeEdgeLabelProxies",(function(){!function(e){i.forEach(e.nodes(),(function(t){var n=e.node(t);"edge-proxy"===n.dummy&&(e.edge(n.e).labelRank=n.rank,e.removeNode(t))}))}(e)})),t("    normalize.run",(function(){o.run(e)})),t("    parentDummyChains",(function(){l(e)})),t("    addBorderSegments",(function(){h(e)})),t("    order",(function(){u(e)})),t("    insertSelfEdges",(function(){!function(e){var t=g.buildLayerMatrix(e);i.forEach(t,(function(t){var n=0;i.forEach(t,(function(t,r){var o=e.node(t);o.order=r+n,i.forEach(o.selfEdges,(function(t){g.addDummyNode(e,"selfedge",{width:t.label.width,height:t.label.height,rank:o.rank,order:r+ ++n,e:t.e,label:t.label},"_se")})),delete o.selfEdges}))}))}(e)})),t("    adjustCoordinateSystem",(function(){p.adjust(e)})),t("    position",(function(){f(e)})),t("    positionSelfEdges",(function(){!function(e){i.forEach(e.nodes(),(function(t){var n=e.node(t);if("selfedge"===n.dummy){var i=e.node(n.e.v),r=i.x+i.width/2,o=i.y,a=n.x-r,s=i.height/2;e.setEdge(n.e,n.label),e.removeNode(t),n.label.points=[{x:r+2*a/3,y:o-s},{x:r+5*a/6,y:o-s},{x:r+a,y:o},{x:r+5*a/6,y:o+s},{x:r+2*a/3,y:o+s}],n.label.x=n.x,n.label.y=n.y}}))}(e)})),t("    removeBorderNodes",(function(){!function(e){i.forEach(e.nodes(),(function(t){if(e.children(t).length){var n=e.node(t),r=e.node(n.borderTop),o=e.node(n.borderBottom),a=e.node(i.last(n.borderLeft)),s=e.node(i.last(n.borderRight));n.width=Math.abs(s.x-a.x),n.height=Math.abs(o.y-r.y),n.x=a.x+n.width/2,n.y=r.y+n.height/2}})),i.forEach(e.nodes(),(function(t){"border"===e.node(t).dummy&&e.removeNode(t)}))}(e)})),t("    normalize.undo",(function(){o.undo(e)})),t("    fixupEdgeLabelCoords",(function(){!function(e){i.forEach(e.edges(),(function(t){var n=e.edge(t);if(i.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}(e)})),t("    undoCoordinateSystem",(function(){p.undo(e)})),t("    translateGraph",(function(){!function(e){var t=Number.POSITIVE_INFINITY,n=0,r=Number.POSITIVE_INFINITY,o=0,a=e.graph(),s=a.marginx||0,l=a.marginy||0;function c(e){var i=e.x,a=e.y,s=e.width,l=e.height;t=Math.min(t,i-s/2),n=Math.max(n,i+s/2),r=Math.min(r,a-l/2),o=Math.max(o,a+l/2)}i.forEach(e.nodes(),(function(t){c(e.node(t))})),i.forEach(e.edges(),(function(t){var n=e.edge(t);i.has(n,"x")&&c(n)})),t-=s,r-=l,i.forEach(e.nodes(),(function(n){var i=e.node(n);i.x-=t,i.y-=r})),i.forEach(e.edges(),(function(n){var o=e.edge(n);i.forEach(o.points,(function(e){e.x-=t,e.y-=r})),i.has(o,"x")&&(o.x-=t),i.has(o,"y")&&(o.y-=r)})),a.width=n-t+s,a.height=o-r+l}(e)})),t("    assignNodeIntersects",(function(){!function(e){i.forEach(e.edges(),(function(t){var n,i,r=e.edge(t),o=e.node(t.v),a=e.node(t.w);r.points?(n=r.points[0],i=r.points[r.points.length-1]):(r.points=[],n=a,i=o),r.points.unshift(g.intersectRect(o,n)),r.points.push(g.intersectRect(a,i))}))}(e)})),t("    reversePoints",(function(){!function(e){i.forEach(e.edges(),(function(t){var n=e.edge(t);n.reversed&&n.points.reverse()}))}(e)})),t("    acyclic.undo",(function(){r.undo(e)}))}(t,n)})),n("  updateInputGraph",(function(){!function(e,t){i.forEach(e.nodes(),(function(n){var i=e.node(n),r=t.node(n);i&&(i.x=r.x,i.y=r.y,t.children(n).length&&(i.width=r.width,i.height=r.height))})),i.forEach(e.edges(),(function(n){var r=e.edge(n),o=t.edge(n);r.points=o.points,i.has(o,"x")&&(r.x=o.x,r.y=o.y)})),e.graph().width=t.graph().width,e.graph().height=t.graph().height}(e,t)}))}))};var v=["nodesep","edgesep","ranksep","marginx","marginy"],y={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},_=["acyclicer","ranker","rankdir","align"],b=["width","height"],x={width:0,height:0},w=["minlen","weight","width","height","labeloffset"],S={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},E=["labelpos"];function C(e,t){return i.mapValues(i.pick(e,t),Number)}function z(e){var t={};return i.forEach(e,(function(e,n){t[n.toLowerCase()]=e})),t}},6857:(e,t,n)=>{var i;try{i={cloneDeep:n(8055),constant:n(7334),defaults:n(4684),each:n(6135),filter:n(7612),find:n(7309),flatten:n(5970),forEach:n(9754),forIn:n(2420),has:n(1448),isUndefined:n(2216),last:n(8090),map:n(5378),mapValues:n(3916),max:n(4506),merge:n(5364),min:n(1684),minBy:n(6533),now:n(124),pick:n(4383),range:n(3181),reduce:n(860),sortBy:n(3031),uniqueId:n(7200),values:n(5880),zipObject:n(7248)}}catch(e){}i||(i=window._),e.exports=i},6353:(e,t,n)=>{var i=n(6857),r=n(3988);function o(e,t,n,a,s,l,c){var d=e.children(c);if(d.length){var h=r.addBorderNode(e,"_bt"),p=r.addBorderNode(e,"_bb"),u=e.node(c);e.setParent(h,c),u.borderTop=h,e.setParent(p,c),u.borderBottom=p,i.forEach(d,(function(i){o(e,t,n,a,s,l,i);var r=e.node(i),d=r.borderTop?r.borderTop:i,u=r.borderBottom?r.borderBottom:i,f=r.borderTop?a:2*a,g=d!==u?1:s-l[c]+1;e.setEdge(h,d,{weight:f,minlen:g,nestingEdge:!0}),e.setEdge(u,p,{weight:f,minlen:g,nestingEdge:!0})})),e.parent(c)||e.setEdge(t,h,{weight:0,minlen:s+l[c]})}else c!==t&&e.setEdge(t,c,{weight:0,minlen:n})}e.exports={run:function(e){var t=r.addDummyNode(e,"root",{},"_root"),n=function(e){var t={};function n(r,o){var a=e.children(r);a&&a.length&&i.forEach(a,(function(e){n(e,o+1)})),t[r]=o}return i.forEach(e.children(),(function(e){n(e,1)})),t}(e),a=i.max(i.values(n))-1,s=2*a+1;e.graph().nestingRoot=t,i.forEach(e.edges(),(function(t){e.edge(t).minlen*=s}));var l=function(e){return i.reduce(e.edges(),(function(t,n){return t+e.edge(n).weight}),0)}(e)+1;i.forEach(e.children(),(function(i){o(e,t,s,l,a,n,i)})),e.graph().nodeRankFactor=s},cleanup:function(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,i.forEach(e.edges(),(function(t){e.edge(t).nestingEdge&&e.removeEdge(t)}))}}},8209:(e,t,n)=>{"use strict";var i=n(6857),r=n(3988);e.exports={run:function(e){e.graph().dummyChains=[],i.forEach(e.edges(),(function(t){!function(e,t){var n,i,o,a=t.v,s=e.node(a).rank,l=t.w,c=e.node(l).rank,d=t.name,h=e.edge(t),p=h.labelRank;if(c!==s+1){for(e.removeEdge(t),o=0,++s;s<c;++o,++s)h.points=[],i={width:0,height:0,edgeLabel:h,edgeObj:t,rank:s},n=r.addDummyNode(e,"edge",i,"_d"),s===p&&(i.width=h.width,i.height=h.height,i.dummy="edge-label",i.labelpos=h.labelpos),e.setEdge(a,n,{weight:h.weight},d),0===o&&e.graph().dummyChains.push(n),a=n;e.setEdge(a,l,{weight:h.weight},d)}}(e,t)}))},undo:function(e){i.forEach(e.graph().dummyChains,(function(t){var n,i=e.node(t),r=i.edgeLabel;for(e.setEdge(i.edgeObj,r);i.dummy;)n=e.successors(t)[0],e.removeNode(t),r.points.push({x:i.x,y:i.y}),"edge-label"===i.dummy&&(r.x=i.x,r.y=i.y,r.width=i.width,r.height=i.height),t=n,i=e.node(t)}))}}},4384:(e,t,n)=>{var i=n(6857);e.exports=function(e,t,n){var r,o={};i.forEach(n,(function(n){for(var i,a,s=e.parent(n);s;){if((i=e.parent(s))?(a=o[i],o[i]=s):(a=r,r=s),a&&a!==s)return void t.setEdge(a,s);s=i}}))}},3860:(e,t,n)=>{var i=n(6857);e.exports=function(e,t){return i.map(t,(function(t){var n=e.inEdges(t);if(n.length){var r=i.reduce(n,(function(t,n){var i=e.edge(n),r=e.node(n.v);return{sum:t.sum+i.weight*r.order,weight:t.weight+i.weight}}),{sum:0,weight:0});return{v:t,barycenter:r.sum/r.weight,weight:r.weight}}return{v:t}}))}},7860:(e,t,n)=>{var i=n(6857),r=n(8191).Graph;e.exports=function(e,t,n){var o=function(e){for(var t;e.hasNode(t=i.uniqueId("_root")););return t}(e),a=new r({compound:!0}).setGraph({root:o}).setDefaultNodeLabel((function(t){return e.node(t)}));return i.forEach(e.nodes(),(function(r){var s=e.node(r),l=e.parent(r);(s.rank===t||s.minRank<=t&&t<=s.maxRank)&&(a.setNode(r),a.setParent(r,l||o),i.forEach(e[n](r),(function(t){var n=t.v===r?t.w:t.v,o=a.edge(n,r),s=i.isUndefined(o)?0:o.weight;a.setEdge(n,r,{weight:e.edge(t).weight+s})})),i.has(s,"minRank")&&a.setNode(r,{borderLeft:s.borderLeft[t],borderRight:s.borderRight[t]}))})),a}},6639:(e,t,n)=>{"use strict";var i=n(6857);function r(e,t,n){for(var r=i.zipObject(n,i.map(n,(function(e,t){return t}))),o=i.flatten(i.map(t,(function(t){return i.sortBy(i.map(e.outEdges(t),(function(t){return{pos:r[t.w],weight:e.edge(t).weight}})),"pos")})),!0),a=1;a<n.length;)a<<=1;var s=2*a-1;a-=1;var l=i.map(new Array(s),(function(){return 0})),c=0;return i.forEach(o.forEach((function(e){var t=e.pos+a;l[t]+=e.weight;for(var n=0;t>0;)t%2&&(n+=l[t+1]),l[t=t-1>>1]+=e.weight;c+=e.weight*n}))),c}e.exports=function(e,t){for(var n=0,i=1;i<t.length;++i)n+=r(e,t[i-1],t[i]);return n}},1453:(e,t,n)=>{"use strict";var i=n(6857),r=n(8918),o=n(6639),a=n(4520),s=n(7860),l=n(4384),c=n(8191).Graph,d=n(3988);function h(e,t,n){return i.map(t,(function(t){return s(e,t,n)}))}function p(e,t){var n=new c;i.forEach(e,(function(e){var r=e.graph().root,o=a(e,r,n,t);i.forEach(o.vs,(function(t,n){e.node(t).order=n})),l(e,n,o.vs)}))}function u(e,t){i.forEach(t,(function(t){i.forEach(t,(function(t,n){e.node(t).order=n}))}))}e.exports=function(e){var t=d.maxRank(e),n=h(e,i.range(1,t+1),"inEdges"),a=h(e,i.range(t-1,-1,-1),"outEdges"),s=r(e);u(e,s);for(var l,c=Number.POSITIVE_INFINITY,f=0,g=0;g<4;++f,++g){p(f%2?n:a,f%4>=2),s=d.buildLayerMatrix(e);var m=o(e,s);m<c&&(g=0,l=i.cloneDeep(s),c=m)}u(e,l)}},8918:(e,t,n)=>{"use strict";var i=n(6857);e.exports=function(e){var t={},n=i.filter(e.nodes(),(function(t){return!e.children(t).length})),r=i.max(i.map(n,(function(t){return e.node(t).rank}))),o=i.map(i.range(r+1),(function(){return[]})),a=i.sortBy(n,(function(t){return e.node(t).rank}));return i.forEach(a,(function n(r){if(!i.has(t,r)){t[r]=!0;var a=e.node(r);o[a.rank].push(r),i.forEach(e.successors(r),n)}})),o}},4959:(e,t,n)=>{"use strict";var i=n(6857);e.exports=function(e,t){var n={};return i.forEach(e,(function(e,t){var r=n[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:t};i.isUndefined(e.barycenter)||(r.barycenter=e.barycenter,r.weight=e.weight)})),i.forEach(t.edges(),(function(e){var t=n[e.v],r=n[e.w];i.isUndefined(t)||i.isUndefined(r)||(r.indegree++,t.out.push(n[e.w]))})),function(e){var t=[];function n(e){return function(t){var n,r,o,a;t.merged||(i.isUndefined(t.barycenter)||i.isUndefined(e.barycenter)||t.barycenter>=e.barycenter)&&(r=t,o=0,a=0,(n=e).weight&&(o+=n.barycenter*n.weight,a+=n.weight),r.weight&&(o+=r.barycenter*r.weight,a+=r.weight),n.vs=r.vs.concat(n.vs),n.barycenter=o/a,n.weight=a,n.i=Math.min(r.i,n.i),r.merged=!0)}}function r(t){return function(n){n.in.push(t),0==--n.indegree&&e.push(n)}}for(;e.length;){var o=e.pop();t.push(o),i.forEach(o.in.reverse(),n(o)),i.forEach(o.out,r(o))}return i.map(i.filter(t,(function(e){return!e.merged})),(function(e){return i.pick(e,["vs","i","barycenter","weight"])}))}(i.filter(n,(function(e){return!e.indegree})))}},4520:(e,t,n)=>{var i=n(6857),r=n(3860),o=n(4959),a=n(5169);e.exports=function e(t,n,s,l){var c=t.children(n),d=t.node(n),h=d?d.borderLeft:void 0,p=d?d.borderRight:void 0,u={};h&&(c=i.filter(c,(function(e){return e!==h&&e!==p})));var f=r(t,c);i.forEach(f,(function(n){if(t.children(n.v).length){var r=e(t,n.v,s,l);u[n.v]=r,i.has(r,"barycenter")&&(o=n,a=r,i.isUndefined(o.barycenter)?(o.barycenter=a.barycenter,o.weight=a.weight):(o.barycenter=(o.barycenter*o.weight+a.barycenter*a.weight)/(o.weight+a.weight),o.weight+=a.weight))}var o,a}));var g=o(f,s);!function(e,t){i.forEach(e,(function(e){e.vs=i.flatten(e.vs.map((function(e){return t[e]?t[e].vs:e})),!0)}))}(g,u);var m=a(g,l);if(h&&(m.vs=i.flatten([h,m.vs,p],!0),t.predecessors(h).length)){var v=t.node(t.predecessors(h)[0]),y=t.node(t.predecessors(p)[0]);i.has(m,"barycenter")||(m.barycenter=0,m.weight=0),m.barycenter=(m.barycenter*m.weight+v.order+y.order)/(m.weight+2),m.weight+=2}return m}},5169:(e,t,n)=>{var i=n(6857),r=n(3988);function o(e,t,n){for(var r;t.length&&(r=i.last(t)).i<=n;)t.pop(),e.push(r.vs),n++;return n}e.exports=function(e,t){var n,a=r.partition(e,(function(e){return i.has(e,"barycenter")})),s=a.lhs,l=i.sortBy(a.rhs,(function(e){return-e.i})),c=[],d=0,h=0,p=0;s.sort((n=!!t,function(e,t){return e.barycenter<t.barycenter?-1:e.barycenter>t.barycenter?1:n?t.i-e.i:e.i-t.i})),p=o(c,l,p),i.forEach(s,(function(e){p+=e.vs.length,c.push(e.vs),d+=e.barycenter*e.weight,h+=e.weight,p=o(c,l,p)}));var u={vs:i.flatten(c,!0)};return h&&(u.barycenter=d/h,u.weight=h),u}},2948:(e,t,n)=>{var i=n(6857);e.exports=function(e){var t=function(e){var t={},n=0;return i.forEach(e.children(),(function r(o){var a=n;i.forEach(e.children(o),r),t[o]={low:a,lim:n++}})),t}(e);i.forEach(e.graph().dummyChains,(function(n){for(var i=e.node(n),r=i.edgeObj,o=function(e,t,n,i){var r,o,a=[],s=[],l=Math.min(t[n].low,t[i].low),c=Math.max(t[n].lim,t[i].lim);r=n;do{r=e.parent(r),a.push(r)}while(r&&(t[r].low>l||c>t[r].lim));for(o=r,r=i;(r=e.parent(r))!==o;)s.push(r);return{path:a.concat(s.reverse()),lca:o}}(e,t,r.v,r.w),a=o.path,s=o.lca,l=0,c=a[l],d=!0;n!==r.w;){if(i=e.node(n),d){for(;(c=a[l])!==s&&e.node(c).maxRank<i.rank;)l++;c===s&&(d=!1)}if(!d){for(;l<a.length-1&&e.node(c=a[l+1]).minRank<=i.rank;)l++;c=a[l]}e.setParent(n,c),n=e.successors(n)[0]}}))}},9741:(e,t,n)=>{"use strict";var i=n(6857),r=n(8191).Graph,o=n(3988);function a(e,t){var n={};return i.reduce(t,(function(t,r){var o=0,a=0,s=t.length,c=i.last(r);return i.forEach(r,(function(t,d){var h=function(e,t){if(e.node(t).dummy)return i.find(e.predecessors(t),(function(t){return e.node(t).dummy}))}(e,t),p=h?e.node(h).order:s;(h||t===c)&&(i.forEach(r.slice(a,d+1),(function(t){i.forEach(e.predecessors(t),(function(i){var r=e.node(i),a=r.order;!(a<o||p<a)||r.dummy&&e.node(t).dummy||l(n,i,t)}))})),a=d+1,o=p)})),r})),n}function s(e,t){var n={};function r(t,r,o,a,s){var c;i.forEach(i.range(r,o),(function(r){c=t[r],e.node(c).dummy&&i.forEach(e.predecessors(c),(function(t){var i=e.node(t);i.dummy&&(i.order<a||i.order>s)&&l(n,t,c)}))}))}return i.reduce(t,(function(t,n){var o,a=-1,s=0;return i.forEach(n,(function(i,l){if("border"===e.node(i).dummy){var c=e.predecessors(i);c.length&&(o=e.node(c[0]).order,r(n,s,l,a,o),s=l,a=o)}r(n,s,n.length,o,t.length)})),n})),n}function l(e,t,n){if(t>n){var i=t;t=n,n=i}var r=e[t];r||(e[t]=r={}),r[n]=!0}function c(e,t,n){if(t>n){var r=t;t=n,n=r}return i.has(e[t],n)}function d(e,t,n,r){var o={},a={},s={};return i.forEach(t,(function(e){i.forEach(e,(function(e,t){o[e]=e,a[e]=e,s[e]=t}))})),i.forEach(t,(function(e){var t=-1;i.forEach(e,(function(e){var l=r(e);if(l.length){l=i.sortBy(l,(function(e){return s[e]}));for(var d=(l.length-1)/2,h=Math.floor(d),p=Math.ceil(d);h<=p;++h){var u=l[h];a[e]===e&&t<s[u]&&!c(n,e,u)&&(a[u]=e,a[e]=o[e]=o[u],t=s[u])}}}))})),{root:o,align:a}}function h(e,t,n,o,a){var s={},l=function(e,t,n,o){var a=new r,s=e.graph(),l=function(e,t,n){return function(r,o,a){var s,l=r.node(o),c=r.node(a),d=0;if(d+=l.width/2,i.has(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":s=-l.width/2;break;case"r":s=l.width/2}if(s&&(d+=n?s:-s),s=0,d+=(l.dummy?t:e)/2,d+=(c.dummy?t:e)/2,d+=c.width/2,i.has(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":s=c.width/2;break;case"r":s=-c.width/2}return s&&(d+=n?s:-s),s=0,d}}(s.nodesep,s.edgesep,o);return i.forEach(t,(function(t){var r;i.forEach(t,(function(t){var i=n[t];if(a.setNode(i),r){var o=n[r],s=a.edge(o,i);a.setEdge(o,i,Math.max(l(e,t,r),s||0))}r=t}))})),a}(e,t,n,a),c=a?"borderLeft":"borderRight";function d(e,t){for(var n=l.nodes(),i=n.pop(),r={};i;)r[i]?e(i):(r[i]=!0,n.push(i),n=n.concat(t(i))),i=n.pop()}return d((function(e){s[e]=l.inEdges(e).reduce((function(e,t){return Math.max(e,s[t.v]+l.edge(t))}),0)}),l.predecessors.bind(l)),d((function(t){var n=l.outEdges(t).reduce((function(e,t){return Math.min(e,s[t.w]-l.edge(t))}),Number.POSITIVE_INFINITY),i=e.node(t);n!==Number.POSITIVE_INFINITY&&i.borderType!==c&&(s[t]=Math.max(s[t],n))}),l.successors.bind(l)),i.forEach(o,(function(e){s[e]=s[n[e]]})),s}function p(e,t){return i.minBy(i.values(t),(function(t){var n=Number.NEGATIVE_INFINITY,r=Number.POSITIVE_INFINITY;return i.forIn(t,(function(t,i){var o=function(e,t){return e.node(t).width}(e,i)/2;n=Math.max(t+o,n),r=Math.min(t-o,r)})),n-r}))}function u(e,t){var n=i.values(t),r=i.min(n),o=i.max(n);i.forEach(["u","d"],(function(n){i.forEach(["l","r"],(function(a){var s,l=n+a,c=e[l];if(c!==t){var d=i.values(c);(s="l"===a?r-i.min(d):o-i.max(d))&&(e[l]=i.mapValues(c,(function(e){return e+s})))}}))}))}function f(e,t){return i.mapValues(e.ul,(function(n,r){if(t)return e[t.toLowerCase()][r];var o=i.sortBy(i.map(e,r));return(o[1]+o[2])/2}))}e.exports={positionX:function(e){var t,n=o.buildLayerMatrix(e),r=i.merge(a(e,n),s(e,n)),l={};i.forEach(["u","d"],(function(o){t="u"===o?n:i.values(n).reverse(),i.forEach(["l","r"],(function(n){"r"===n&&(t=i.map(t,(function(e){return i.values(e).reverse()})));var a=("u"===o?e.predecessors:e.successors).bind(e),s=d(0,t,r,a),c=h(e,t,s.root,s.align,"r"===n);"r"===n&&(c=i.mapValues(c,(function(e){return-e}))),l[o+n]=c}))}));var c=p(e,l);return u(l,c),f(l,e.graph().align)},findType1Conflicts:a,findType2Conflicts:s,addConflict:l,hasConflict:c,verticalAlignment:d,horizontalCompaction:h,alignCoordinates:u,findSmallestWidthAlignment:p,balance:f}},3776:(e,t,n)=>{"use strict";var i=n(6857),r=n(3988),o=n(9741).positionX;e.exports=function(e){(function(e){var t=r.buildLayerMatrix(e),n=e.graph().ranksep,o=0;i.forEach(t,(function(t){var r=i.max(i.map(t,(function(t){return e.node(t).height})));i.forEach(t,(function(t){e.node(t).y=o+r/2})),o+=r+n}))})(e=r.asNonCompoundGraph(e)),i.forEach(o(e),(function(t,n){e.node(n).x=t}))}},8481:(e,t,n)=>{"use strict";var i=n(6857),r=n(8191).Graph,o=n(8073).slack;function a(e,t){return i.forEach(e.nodes(),(function n(r){i.forEach(t.nodeEdges(r),(function(i){var a=i.v,s=r===a?i.w:a;e.hasNode(s)||o(t,i)||(e.setNode(s,{}),e.setEdge(r,s,{}),n(s))}))})),e.nodeCount()}function s(e,t){return i.minBy(t.edges(),(function(n){if(e.hasNode(n.v)!==e.hasNode(n.w))return o(t,n)}))}function l(e,t,n){i.forEach(e.nodes(),(function(e){t.node(e).rank+=n}))}e.exports=function(e){var t,n,i=new r({directed:!1}),c=e.nodes()[0],d=e.nodeCount();for(i.setNode(c,{});a(i,e)<d;)t=s(i,e),n=i.hasNode(t.v)?o(e,t):-o(e,t),l(i,e,n);return i}},9361:(e,t,n)=>{"use strict";var i=n(8073).longestPath,r=n(8481),o=n(6860);e.exports=function(e){switch(e.graph().ranker){case"network-simplex":default:!function(e){o(e)}(e);break;case"tight-tree":!function(e){i(e),r(e)}(e);break;case"longest-path":a(e)}};var a=i},6860:(e,t,n)=>{"use strict";var i=n(6857),r=n(8481),o=n(8073).slack,a=n(8073).longestPath,s=n(8191).alg.preorder,l=n(8191).alg.postorder,c=n(3988).simplify;function d(e){e=c(e),a(e);var t,n=r(e);for(u(n),h(n,e);t=g(n);)v(n,e,t,m(n,e,t))}function h(e,t){var n=l(e,e.nodes());n=n.slice(0,n.length-1),i.forEach(n,(function(n){!function(e,t,n){var i=e.node(n).parent;e.edge(n,i).cutvalue=p(e,t,n)}(e,t,n)}))}function p(e,t,n){var r=e.node(n).parent,o=!0,a=t.edge(n,r),s=0;return a||(o=!1,a=t.edge(r,n)),s=a.weight,i.forEach(t.nodeEdges(n),(function(i){var a,l,c=i.v===n,d=c?i.w:i.v;if(d!==r){var h=c===o,p=t.edge(i).weight;if(s+=h?p:-p,a=n,l=d,e.hasEdge(a,l)){var u=e.edge(n,d).cutvalue;s+=h?-u:u}}})),s}function u(e,t){arguments.length<2&&(t=e.nodes()[0]),f(e,{},1,t)}function f(e,t,n,r,o){var a=n,s=e.node(r);return t[r]=!0,i.forEach(e.neighbors(r),(function(o){i.has(t,o)||(n=f(e,t,n,o,r))})),s.low=a,s.lim=n++,o?s.parent=o:delete s.parent,n}function g(e){return i.find(e.edges(),(function(t){return e.edge(t).cutvalue<0}))}function m(e,t,n){var r=n.v,a=n.w;t.hasEdge(r,a)||(r=n.w,a=n.v);var s=e.node(r),l=e.node(a),c=s,d=!1;s.lim>l.lim&&(c=l,d=!0);var h=i.filter(t.edges(),(function(t){return d===y(0,e.node(t.v),c)&&d!==y(0,e.node(t.w),c)}));return i.minBy(h,(function(e){return o(t,e)}))}function v(e,t,n,r){var o=n.v,a=n.w;e.removeEdge(o,a),e.setEdge(r.v,r.w,{}),u(e),h(e,t),function(e,t){var n=i.find(e.nodes(),(function(e){return!t.node(e).parent})),r=s(e,n);r=r.slice(1),i.forEach(r,(function(n){var i=e.node(n).parent,r=t.edge(n,i),o=!1;r||(r=t.edge(i,n),o=!0),t.node(n).rank=t.node(i).rank+(o?r.minlen:-r.minlen)}))}(e,t)}function y(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}e.exports=d,d.initLowLimValues=u,d.initCutValues=h,d.calcCutValue=p,d.leaveEdge=g,d.enterEdge=m,d.exchangeEdges=v},8073:(e,t,n)=>{"use strict";var i=n(6857);e.exports={longestPath:function(e){var t={};i.forEach(e.sources(),(function n(r){var o=e.node(r);if(i.has(t,r))return o.rank;t[r]=!0;var a=i.min(i.map(e.outEdges(r),(function(t){return n(t.w)-e.edge(t).minlen})));return a!==Number.POSITIVE_INFINITY&&null!=a||(a=0),o.rank=a}))},slack:function(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}}},3988:(e,t,n)=>{"use strict";var i=n(6857),r=n(8191).Graph;function o(e,t,n,r){var o;do{o=i.uniqueId(r)}while(e.hasNode(o));return n.dummy=t,e.setNode(o,n),o}function a(e){return i.max(i.map(e.nodes(),(function(t){var n=e.node(t).rank;if(!i.isUndefined(n))return n})))}e.exports={addDummyNode:o,simplify:function(e){var t=(new r).setGraph(e.graph());return i.forEach(e.nodes(),(function(n){t.setNode(n,e.node(n))})),i.forEach(e.edges(),(function(n){var i=t.edge(n.v,n.w)||{weight:0,minlen:1},r=e.edge(n);t.setEdge(n.v,n.w,{weight:i.weight+r.weight,minlen:Math.max(i.minlen,r.minlen)})})),t},asNonCompoundGraph:function(e){var t=new r({multigraph:e.isMultigraph()}).setGraph(e.graph());return i.forEach(e.nodes(),(function(n){e.children(n).length||t.setNode(n,e.node(n))})),i.forEach(e.edges(),(function(n){t.setEdge(n,e.edge(n))})),t},successorWeights:function(e){var t=i.map(e.nodes(),(function(t){var n={};return i.forEach(e.outEdges(t),(function(t){n[t.w]=(n[t.w]||0)+e.edge(t).weight})),n}));return i.zipObject(e.nodes(),t)},predecessorWeights:function(e){var t=i.map(e.nodes(),(function(t){var n={};return i.forEach(e.inEdges(t),(function(t){n[t.v]=(n[t.v]||0)+e.edge(t).weight})),n}));return i.zipObject(e.nodes(),t)},intersectRect:function(e,t){var n,i,r=e.x,o=e.y,a=t.x-r,s=t.y-o,l=e.width/2,c=e.height/2;if(!a&&!s)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*l>Math.abs(a)*c?(s<0&&(c=-c),n=c*a/s,i=c):(a<0&&(l=-l),n=l,i=l*s/a),{x:r+n,y:o+i}},buildLayerMatrix:function(e){var t=i.map(i.range(a(e)+1),(function(){return[]}));return i.forEach(e.nodes(),(function(n){var r=e.node(n),o=r.rank;i.isUndefined(o)||(t[o][r.order]=n)})),t},normalizeRanks:function(e){var t=i.min(i.map(e.nodes(),(function(t){return e.node(t).rank})));i.forEach(e.nodes(),(function(n){var r=e.node(n);i.has(r,"rank")&&(r.rank-=t)}))},removeEmptyRanks:function(e){var t=i.min(i.map(e.nodes(),(function(t){return e.node(t).rank}))),n=[];i.forEach(e.nodes(),(function(i){var r=e.node(i).rank-t;n[r]||(n[r]=[]),n[r].push(i)}));var r=0,o=e.graph().nodeRankFactor;i.forEach(n,(function(t,n){i.isUndefined(t)&&n%o!=0?--r:r&&i.forEach(t,(function(t){e.node(t).rank+=r}))}))},addBorderNode:function(e,t,n,i){var r={width:0,height:0};return arguments.length>=4&&(r.rank=n,r.order=i),o(e,"border",r,t)},maxRank:a,partition:function(e,t){var n={lhs:[],rhs:[]};return i.forEach(e,(function(e){t(e)?n.lhs.push(e):n.rhs.push(e)})),n},time:function(e,t){var n=i.now();try{return t()}finally{console.log(e+" time: "+(i.now()-n)+"ms")}},notime:function(e,t){return t()}}},7038:e=>{e.exports="0.8.5"},8362:(e,t,n)=>{var i=n(1166);e.exports={Graph:i.Graph,json:n(7494),alg:n(1667),version:i.version}},3619:(e,t,n)=>{var i=n(117);e.exports=function(e){var t,n={},r=[];function o(r){i.has(n,r)||(n[r]=!0,t.push(r),i.each(e.successors(r),o),i.each(e.predecessors(r),o))}return i.each(e.nodes(),(function(e){t=[],o(e),t.length&&r.push(t)})),r}},9276:(e,t,n)=>{var i=n(117);function r(e,t,n,o,a,s){i.has(o,t)||(o[t]=!0,n||s.push(t),i.each(a(t),(function(t){r(e,t,n,o,a,s)})),n&&s.push(t))}e.exports=function(e,t,n){i.isArray(t)||(t=[t]);var o=(e.isDirected()?e.successors:e.neighbors).bind(e),a=[],s={};return i.each(t,(function(t){if(!e.hasNode(t))throw new Error("Graph does not have node: "+t);r(e,t,"post"===n,s,o,a)})),a}},4919:(e,t,n)=>{var i=n(8905),r=n(117);e.exports=function(e,t,n){return r.transform(e.nodes(),(function(r,o){r[o]=i(e,o,t,n)}),{})}},8905:(e,t,n)=>{var i=n(117),r=n(1737);e.exports=function(e,t,n,i){return function(e,t,n,i){var o,a,s={},l=new r,c=function(e){var t=e.v!==o?e.v:e.w,i=s[t],r=n(e),c=a.distance+r;if(r<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+e+" Weight: "+r);c<i.distance&&(i.distance=c,i.predecessor=o,l.decrease(t,c))};for(e.nodes().forEach((function(e){var n=e===t?0:Number.POSITIVE_INFINITY;s[e]={distance:n},l.add(e,n)}));l.size()>0&&(o=l.removeMin(),(a=s[o]).distance!==Number.POSITIVE_INFINITY);)i(o).forEach(c);return s}(e,String(t),n||o,i||function(t){return e.outEdges(t)})};var o=i.constant(1)},6678:(e,t,n)=>{var i=n(117),r=n(6291);e.exports=function(e){return i.filter(r(e),(function(t){return t.length>1||1===t.length&&e.hasEdge(t[0],t[0])}))}},3590:(e,t,n)=>{var i=n(117);e.exports=function(e,t,n){return function(e,t,n){var i={},r=e.nodes();return r.forEach((function(e){i[e]={},i[e][e]={distance:0},r.forEach((function(t){e!==t&&(i[e][t]={distance:Number.POSITIVE_INFINITY})})),n(e).forEach((function(n){var r=n.v===e?n.w:n.v,o=t(n);i[e][r]={distance:o,predecessor:e}}))})),r.forEach((function(e){var t=i[e];r.forEach((function(n){var o=i[n];r.forEach((function(n){var i=o[e],r=t[n],a=o[n],s=i.distance+r.distance;s<a.distance&&(a.distance=s,a.predecessor=r.predecessor)}))}))})),i}(e,t||r,n||function(t){return e.outEdges(t)})};var r=i.constant(1)},1667:(e,t,n)=>{e.exports={components:n(3619),dijkstra:n(8905),dijkstraAll:n(4919),findCycles:n(6678),floydWarshall:n(3590),isAcyclic:n(498),postorder:n(1045),preorder:n(6016),prim:n(4423),tarjan:n(6291),topsort:n(9888)}},498:(e,t,n)=>{var i=n(9888);e.exports=function(e){try{i(e)}catch(e){if(e instanceof i.CycleException)return!1;throw e}return!0}},1045:(e,t,n)=>{var i=n(9276);e.exports=function(e,t){return i(e,t,"post")}},6016:(e,t,n)=>{var i=n(9276);e.exports=function(e,t){return i(e,t,"pre")}},4423:(e,t,n)=>{var i=n(117),r=n(6454),o=n(1737);e.exports=function(e,t){var n,a=new r,s={},l=new o;function c(e){var i=e.v===n?e.w:e.v,r=l.priority(i);if(void 0!==r){var o=t(e);o<r&&(s[i]=n,l.decrease(i,o))}}if(0===e.nodeCount())return a;i.each(e.nodes(),(function(e){l.add(e,Number.POSITIVE_INFINITY),a.setNode(e)})),l.decrease(e.nodes()[0],0);for(var d=!1;l.size()>0;){if(n=l.removeMin(),i.has(s,n))a.setEdge(n,s[n]);else{if(d)throw new Error("Input graph is not connected: "+e);d=!0}e.nodeEdges(n).forEach(c)}return a}},6291:(e,t,n)=>{var i=n(117);e.exports=function(e){var t=0,n=[],r={},o=[];function a(s){var l=r[s]={onStack:!0,lowlink:t,index:t++};if(n.push(s),e.successors(s).forEach((function(e){i.has(r,e)?r[e].onStack&&(l.lowlink=Math.min(l.lowlink,r[e].index)):(a(e),l.lowlink=Math.min(l.lowlink,r[e].lowlink))})),l.lowlink===l.index){var c,d=[];do{c=n.pop(),r[c].onStack=!1,d.push(c)}while(s!==c);o.push(d)}}return e.nodes().forEach((function(e){i.has(r,e)||a(e)})),o}},9888:(e,t,n)=>{var i=n(117);function r(e){var t={},n={},r=[];if(i.each(e.sinks(),(function a(s){if(i.has(n,s))throw new o;i.has(t,s)||(n[s]=!0,t[s]=!0,i.each(e.predecessors(s),a),delete n[s],r.push(s))})),i.size(t)!==e.nodeCount())throw new o;return r}function o(){}e.exports=r,r.CycleException=o,o.prototype=new Error},1737:(e,t,n)=>{var i=n(117);function r(){this._arr=[],this._keyIndices={}}e.exports=r,r.prototype.size=function(){return this._arr.length},r.prototype.keys=function(){return this._arr.map((function(e){return e.key}))},r.prototype.has=function(e){return i.has(this._keyIndices,e)},r.prototype.priority=function(e){var t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority},r.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},r.prototype.add=function(e,t){var n=this._keyIndices;if(e=String(e),!i.has(n,e)){var r=this._arr,o=r.length;return n[e]=o,r.push({key:e,priority:t}),this._decrease(o),!0}return!1},r.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key},r.prototype.decrease=function(e,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[n].priority+" New: "+t);this._arr[n].priority=t,this._decrease(n)},r.prototype._heapify=function(e){var t=this._arr,n=2*e,i=n+1,r=e;n<t.length&&(r=t[n].priority<t[r].priority?n:r,i<t.length&&(r=t[i].priority<t[r].priority?i:r),r!==e&&(this._swap(e,r),this._heapify(r)))},r.prototype._decrease=function(e){for(var t,n=this._arr,i=n[e].priority;0!==e&&!(n[t=e>>1].priority<i);)this._swap(e,t),e=t},r.prototype._swap=function(e,t){var n=this._arr,i=this._keyIndices,r=n[e],o=n[t];n[e]=o,n[t]=r,i[o.key]=e,i[r.key]=t}},6454:(e,t,n)=>{"use strict";var i=n(117);e.exports=o;var r="\0";function o(e){this._isDirected=!i.has(e,"directed")||e.directed,this._isMultigraph=!!i.has(e,"multigraph")&&e.multigraph,this._isCompound=!!i.has(e,"compound")&&e.compound,this._label=void 0,this._defaultNodeLabelFn=i.constant(void 0),this._defaultEdgeLabelFn=i.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[r]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function a(e,t){e[t]?e[t]++:e[t]=1}function s(e,t){--e[t]||delete e[t]}function l(e,t,n,r){var o=""+t,a=""+n;if(!e&&o>a){var s=o;o=a,a=s}return o+""+a+""+(i.isUndefined(r)?"\0":r)}function c(e,t){return l(e,t.v,t.w,t.name)}o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(e){return this._label=e,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(e){return i.isFunction(e)||(e=i.constant(e)),this._defaultNodeLabelFn=e,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return i.keys(this._nodes)},o.prototype.sources=function(){var e=this;return i.filter(this.nodes(),(function(t){return i.isEmpty(e._in[t])}))},o.prototype.sinks=function(){var e=this;return i.filter(this.nodes(),(function(t){return i.isEmpty(e._out[t])}))},o.prototype.setNodes=function(e,t){var n=arguments,r=this;return i.each(e,(function(e){n.length>1?r.setNode(e,t):r.setNode(e)})),this},o.prototype.setNode=function(e,t){return i.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=r,this._children[e]={},this._children[r][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)},o.prototype.node=function(e){return this._nodes[e]},o.prototype.hasNode=function(e){return i.has(this._nodes,e)},o.prototype.removeNode=function(e){var t=this;if(i.has(this._nodes,e)){var n=function(e){t.removeEdge(t._edgeObjs[e])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],i.each(this.children(e),(function(e){t.setParent(e)})),delete this._children[e]),i.each(i.keys(this._in[e]),n),delete this._in[e],delete this._preds[e],i.each(i.keys(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this},o.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(i.isUndefined(t))t=r;else{for(var n=t+="";!i.isUndefined(n);n=this.parent(n))if(n===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this},o.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},o.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==r)return t}},o.prototype.children=function(e){if(i.isUndefined(e)&&(e=r),this._isCompound){var t=this._children[e];if(t)return i.keys(t)}else{if(e===r)return this.nodes();if(this.hasNode(e))return[]}},o.prototype.predecessors=function(e){var t=this._preds[e];if(t)return i.keys(t)},o.prototype.successors=function(e){var t=this._sucs[e];if(t)return i.keys(t)},o.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return i.union(t,this.successors(e))},o.prototype.isLeaf=function(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length},o.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var n=this;i.each(this._nodes,(function(n,i){e(i)&&t.setNode(i,n)})),i.each(this._edgeObjs,(function(e){t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,n.edge(e))}));var r={};function o(e){var i=n.parent(e);return void 0===i||t.hasNode(i)?(r[e]=i,i):i in r?r[i]:o(i)}return this._isCompound&&i.each(t.nodes(),(function(e){t.setParent(e,o(e))})),t},o.prototype.setDefaultEdgeLabel=function(e){return i.isFunction(e)||(e=i.constant(e)),this._defaultEdgeLabelFn=e,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return i.values(this._edgeObjs)},o.prototype.setPath=function(e,t){var n=this,r=arguments;return i.reduce(e,(function(e,i){return r.length>1?n.setEdge(e,i,t):n.setEdge(e,i),i})),this},o.prototype.setEdge=function(){var e,t,n,r,o=!1,s=arguments[0];"object"==typeof s&&null!==s&&"v"in s?(e=s.v,t=s.w,n=s.name,2===arguments.length&&(r=arguments[1],o=!0)):(e=s,t=arguments[1],n=arguments[3],arguments.length>2&&(r=arguments[2],o=!0)),e=""+e,t=""+t,i.isUndefined(n)||(n=""+n);var c=l(this._isDirected,e,t,n);if(i.has(this._edgeLabels,c))return o&&(this._edgeLabels[c]=r),this;if(!i.isUndefined(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[c]=o?r:this._defaultEdgeLabelFn(e,t,n);var d=function(e,t,n,i){var r=""+t,o=""+n;if(!e&&r>o){var a=r;r=o,o=a}var s={v:r,w:o};return i&&(s.name=i),s}(this._isDirected,e,t,n);return e=d.v,t=d.w,Object.freeze(d),this._edgeObjs[c]=d,a(this._preds[t],e),a(this._sucs[e],t),this._in[t][c]=d,this._out[e][c]=d,this._edgeCount++,this},o.prototype.edge=function(e,t,n){var i=1===arguments.length?c(this._isDirected,arguments[0]):l(this._isDirected,e,t,n);return this._edgeLabels[i]},o.prototype.hasEdge=function(e,t,n){var r=1===arguments.length?c(this._isDirected,arguments[0]):l(this._isDirected,e,t,n);return i.has(this._edgeLabels,r)},o.prototype.removeEdge=function(e,t,n){var i=1===arguments.length?c(this._isDirected,arguments[0]):l(this._isDirected,e,t,n),r=this._edgeObjs[i];return r&&(e=r.v,t=r.w,delete this._edgeLabels[i],delete this._edgeObjs[i],s(this._preds[t],e),s(this._sucs[e],t),delete this._in[t][i],delete this._out[e][i],this._edgeCount--),this},o.prototype.inEdges=function(e,t){var n=this._in[e];if(n){var r=i.values(n);return t?i.filter(r,(function(e){return e.v===t})):r}},o.prototype.outEdges=function(e,t){var n=this._out[e];if(n){var r=i.values(n);return t?i.filter(r,(function(e){return e.w===t})):r}},o.prototype.nodeEdges=function(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))}},1166:(e,t,n)=>{e.exports={Graph:n(6454),version:n(4458)}},7494:(e,t,n)=>{var i=n(117),r=n(6454);function o(e){return i.map(e.nodes(),(function(t){var n=e.node(t),r=e.parent(t),o={v:t};return i.isUndefined(n)||(o.value=n),i.isUndefined(r)||(o.parent=r),o}))}function a(e){return i.map(e.edges(),(function(t){var n=e.edge(t),r={v:t.v,w:t.w};return i.isUndefined(t.name)||(r.name=t.name),i.isUndefined(n)||(r.value=n),r}))}e.exports={write:function(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:o(e),edges:a(e)};return i.isUndefined(e.graph())||(t.value=i.clone(e.graph())),t},read:function(e){var t=new r(e.options).setGraph(e.value);return i.each(e.nodes,(function(e){t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)})),i.each(e.edges,(function(e){t.setEdge({v:e.v,w:e.w,name:e.name},e.value)})),t}}},117:(e,t,n)=>{var i;try{i={clone:n(2629),constant:n(7334),each:n(6135),filter:n(7612),has:n(1448),isArray:n(6449),isEmpty:n(2193),isFunction:n(1882),isUndefined:n(2216),keys:n(5950),map:n(5378),reduce:n(860),size:n(7091),transform:n(9752),union:n(299),values:n(5880)}}catch(e){}i||(i=window._),e.exports=i},4458:e=>{e.exports="2.1.8"},5580:(e,t,n)=>{var i=n(6110)(n(9325),"DataView");e.exports=i},1549:(e,t,n)=>{var i=n(2032),r=n(3862),o=n(6721),a=n(2749),s=n(5749);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}l.prototype.clear=i,l.prototype.delete=r,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},79:(e,t,n)=>{var i=n(3702),r=n(80),o=n(4739),a=n(8655),s=n(1175);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}l.prototype.clear=i,l.prototype.delete=r,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},8223:(e,t,n)=>{var i=n(6110)(n(9325),"Map");e.exports=i},3661:(e,t,n)=>{var i=n(3040),r=n(7670),o=n(289),a=n(4509),s=n(2949);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}l.prototype.clear=i,l.prototype.delete=r,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},2804:(e,t,n)=>{var i=n(6110)(n(9325),"Promise");e.exports=i},6545:(e,t,n)=>{var i=n(6110)(n(9325),"Set");e.exports=i},8859:(e,t,n)=>{var i=n(3661),r=n(1380),o=n(1459);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new i;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=r,a.prototype.has=o,e.exports=a},7217:(e,t,n)=>{var i=n(79),r=n(1420),o=n(938),a=n(3605),s=n(9817),l=n(945);function c(e){var t=this.__data__=new i(e);this.size=t.size}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=a,c.prototype.has=s,c.prototype.set=l,e.exports=c},1873:(e,t,n)=>{var i=n(9325).Symbol;e.exports=i},7828:(e,t,n)=>{var i=n(9325).Uint8Array;e.exports=i},8303:(e,t,n)=>{var i=n(6110)(n(9325),"WeakMap");e.exports=i},1033:e=>{e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},3729:e=>{e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}},9770:e=>{e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}},5325:(e,t,n)=>{var i=n(6131);e.exports=function(e,t){return!(null==e||!e.length)&&i(e,t,0)>-1}},9905:e=>{e.exports=function(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}},695:(e,t,n)=>{var i=n(8096),r=n(2428),o=n(6449),a=n(3656),s=n(361),l=n(7167),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),d=!n&&r(e),h=!n&&!d&&a(e),p=!n&&!d&&!h&&l(e),u=n||d||h||p,f=u?i(e.length,String):[],g=f.length;for(var m in e)!t&&!c.call(e,m)||u&&("length"==m||h&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,g))||f.push(m);return f}},4932:e=>{e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}},4528:e=>{e.exports=function(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}},882:e=>{e.exports=function(e,t,n,i){var r=-1,o=null==e?0:e.length;for(i&&o&&(n=e[++r]);++r<o;)n=t(n,e[r],r,e);return n}},4248:e=>{e.exports=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}},9811:(e,t,n)=>{var i=n(7237)("length");e.exports=i},7805:(e,t,n)=>{var i=n(3360),r=n(5288);e.exports=function(e,t,n){(void 0!==n&&!r(e[t],n)||void 0===n&&!(t in e))&&i(e,t,n)}},6547:(e,t,n)=>{var i=n(3360),r=n(5288),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];o.call(e,t)&&r(a,n)&&(void 0!==n||t in e)||i(e,t,n)}},6025:(e,t,n)=>{var i=n(5288);e.exports=function(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}},4733:(e,t,n)=>{var i=n(1791),r=n(5950);e.exports=function(e,t){return e&&i(t,r(t),e)}},3838:(e,t,n)=>{var i=n(1791),r=n(7241);e.exports=function(e,t){return e&&i(t,r(t),e)}},3360:(e,t,n)=>{var i=n(3243);e.exports=function(e,t,n){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},9999:(e,t,n)=>{var i=n(7217),r=n(3729),o=n(6547),a=n(4733),s=n(3838),l=n(3290),c=n(3007),d=n(2271),h=n(8948),p=n(2),u=n(3349),f=n(5861),g=n(6189),m=n(7199),v=n(5529),y=n(6449),_=n(3656),b=n(7730),x=n(3805),w=n(8440),S=n(5950),E=n(7241),C="[object Arguments]",z="[object Function]",k="[object Object]",M={};M[C]=M["[object Array]"]=M["[object ArrayBuffer]"]=M["[object DataView]"]=M["[object Boolean]"]=M["[object Date]"]=M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Map]"]=M["[object Number]"]=M[k]=M["[object RegExp]"]=M["[object Set]"]=M["[object String]"]=M["[object Symbol]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M["[object Error]"]=M[z]=M["[object WeakMap]"]=!1,e.exports=function e(t,n,A,T,N,I){var O,L=1&n,P=2&n,H=4&n;if(A&&(O=N?A(t,T,N,I):A(t)),void 0!==O)return O;if(!x(t))return t;var R=y(t);if(R){if(O=g(t),!L)return c(t,O)}else{var V=f(t),B=V==z||"[object GeneratorFunction]"==V;if(_(t))return l(t,L);if(V==k||V==C||B&&!N){if(O=P||B?{}:v(t),!L)return P?h(t,s(O,t)):d(t,a(O,t))}else{if(!M[V])return N?t:{};O=m(t,V,L)}}I||(I=new i);var D=I.get(t);if(D)return D;I.set(t,O),w(t)?t.forEach((function(i){O.add(e(i,n,A,i,t,I))})):b(t)&&t.forEach((function(i,r){O.set(r,e(i,n,A,r,t,I))}));var F=R?void 0:(H?P?u:p:P?E:S)(t);return r(F||t,(function(i,r){F&&(i=t[r=i]),o(O,r,e(i,n,A,r,t,I))})),O}},9344:(e,t,n)=>{var i=n(3805),r=Object.create,o=function(){function e(){}return function(t){if(!i(t))return{};if(r)return r(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},909:(e,t,n)=>{var i=n(641),r=n(8329)(i);e.exports=r},3599:(e,t,n)=>{var i=n(4394);e.exports=function(e,t,n){for(var r=-1,o=e.length;++r<o;){var a=e[r],s=t(a);if(null!=s&&(void 0===l?s==s&&!i(s):n(s,l)))var l=s,c=a}return c}},6574:(e,t,n)=>{var i=n(909);e.exports=function(e,t){var n=[];return i(e,(function(e,i,r){t(e,i,r)&&n.push(e)})),n}},2523:e=>{e.exports=function(e,t,n,i){for(var r=e.length,o=n+(i?1:-1);i?o--:++o<r;)if(t(e[o],o,e))return o;return-1}},3120:(e,t,n)=>{var i=n(4528),r=n(5891);e.exports=function e(t,n,o,a,s){var l=-1,c=t.length;for(o||(o=r),s||(s=[]);++l<c;){var d=t[l];n>0&&o(d)?n>1?e(d,n-1,o,a,s):i(s,d):a||(s[s.length]=d)}return s}},6649:(e,t,n)=>{var i=n(3221)();e.exports=i},641:(e,t,n)=>{var i=n(6649),r=n(5950);e.exports=function(e,t){return e&&i(e,t,r)}},7422:(e,t,n)=>{var i=n(1769),r=n(7797);e.exports=function(e,t){for(var n=0,o=(t=i(t,e)).length;null!=e&&n<o;)e=e[r(t[n++])];return n&&n==o?e:void 0}},2199:(e,t,n)=>{var i=n(4528),r=n(6449);e.exports=function(e,t,n){var o=t(e);return r(e)?o:i(o,n(e))}},2552:(e,t,n)=>{var i=n(1873),r=n(659),o=n(9350),a=i?i.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?r(e):o(e)}},3335:e=>{e.exports=function(e,t){return e>t}},426:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e,n){return null!=e&&t.call(e,n)}},8077:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},6131:(e,t,n)=>{var i=n(2523),r=n(5463),o=n(6959);e.exports=function(e,t,n){return t==t?o(e,t,n):i(e,r,n)}},7534:(e,t,n)=>{var i=n(2552),r=n(346);e.exports=function(e){return r(e)&&"[object Arguments]"==i(e)}},270:(e,t,n)=>{var i=n(7068),r=n(346);e.exports=function e(t,n,o,a,s){return t===n||(null==t||null==n||!r(t)&&!r(n)?t!=t&&n!=n:i(t,n,o,a,e,s))}},7068:(e,t,n)=>{var i=n(7217),r=n(5911),o=n(1986),a=n(689),s=n(5861),l=n(6449),c=n(3656),d=n(7167),h="[object Arguments]",p="[object Array]",u="[object Object]",f=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,g,m,v){var y=l(e),_=l(t),b=y?p:s(e),x=_?p:s(t),w=(b=b==h?u:b)==u,S=(x=x==h?u:x)==u,E=b==x;if(E&&c(e)){if(!c(t))return!1;y=!0,w=!1}if(E&&!w)return v||(v=new i),y||d(e)?r(e,t,n,g,m,v):o(e,t,b,n,g,m,v);if(!(1&n)){var C=w&&f.call(e,"__wrapped__"),z=S&&f.call(t,"__wrapped__");if(C||z){var k=C?e.value():e,M=z?t.value():t;return v||(v=new i),m(k,M,n,g,v)}}return!!E&&(v||(v=new i),a(e,t,n,g,m,v))}},9172:(e,t,n)=>{var i=n(5861),r=n(346);e.exports=function(e){return r(e)&&"[object Map]"==i(e)}},1799:(e,t,n)=>{var i=n(7217),r=n(270);e.exports=function(e,t,n,o){var a=n.length,s=a,l=!o;if(null==e)return!s;for(e=Object(e);a--;){var c=n[a];if(l&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++a<s;){var d=(c=n[a])[0],h=e[d],p=c[1];if(l&&c[2]){if(void 0===h&&!(d in e))return!1}else{var u=new i;if(o)var f=o(h,p,d,e,t,u);if(!(void 0===f?r(p,h,3,o,u):f))return!1}}return!0}},5463:e=>{e.exports=function(e){return e!=e}},5083:(e,t,n)=>{var i=n(1882),r=n(7296),o=n(3805),a=n(7473),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,d=l.toString,h=c.hasOwnProperty,p=RegExp("^"+d.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||r(e))&&(i(e)?p:s).test(a(e))}},6038:(e,t,n)=>{var i=n(5861),r=n(346);e.exports=function(e){return r(e)&&"[object Set]"==i(e)}},4901:(e,t,n)=>{var i=n(2552),r=n(294),o=n(346),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&r(e.length)&&!!a[i(e)]}},5389:(e,t,n)=>{var i=n(3663),r=n(7978),o=n(3488),a=n(6449),s=n(583);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?a(e)?r(e[0],e[1]):i(e):s(e)}},8984:(e,t,n)=>{var i=n(5527),r=n(3650),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!i(e))return r(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},2903:(e,t,n)=>{var i=n(3805),r=n(5527),o=n(181),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!i(e))return o(e);var t=r(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},6176:e=>{e.exports=function(e,t){return e<t}},5128:(e,t,n)=>{var i=n(909),r=n(4894);e.exports=function(e,t){var n=-1,o=r(e)?Array(e.length):[];return i(e,(function(e,i,r){o[++n]=t(e,i,r)})),o}},3663:(e,t,n)=>{var i=n(1799),r=n(776),o=n(7197);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||i(n,e,t)}}},7978:(e,t,n)=>{var i=n(270),r=n(8156),o=n(631),a=n(8586),s=n(756),l=n(7197),c=n(7797);e.exports=function(e,t){return a(e)&&s(t)?l(c(e),t):function(n){var a=r(n,e);return void 0===a&&a===t?o(n,e):i(t,a,3)}}},5250:(e,t,n)=>{var i=n(7217),r=n(7805),o=n(6649),a=n(2824),s=n(3805),l=n(7241),c=n(4974);e.exports=function e(t,n,d,h,p){t!==n&&o(n,(function(o,l){if(p||(p=new i),s(o))a(t,n,l,d,e,h,p);else{var u=h?h(c(t,l),o,l+"",t,n,p):void 0;void 0===u&&(u=o),r(t,l,u)}}),l)}},2824:(e,t,n)=>{var i=n(7805),r=n(3290),o=n(1961),a=n(3007),s=n(5529),l=n(2428),c=n(6449),d=n(3693),h=n(3656),p=n(1882),u=n(3805),f=n(1331),g=n(7167),m=n(4974),v=n(9884);e.exports=function(e,t,n,y,_,b,x){var w=m(e,n),S=m(t,n),E=x.get(S);if(E)i(e,n,E);else{var C=b?b(w,S,n+"",e,t,x):void 0,z=void 0===C;if(z){var k=c(S),M=!k&&h(S),A=!k&&!M&&g(S);C=S,k||M||A?c(w)?C=w:d(w)?C=a(w):M?(z=!1,C=r(S,!0)):A?(z=!1,C=o(S,!0)):C=[]:f(S)||l(S)?(C=w,l(w)?C=v(w):u(w)&&!p(w)||(C=s(S))):z=!1}z&&(x.set(S,C),_(C,S,y,b,x),x.delete(S)),i(e,n,C)}}},6155:(e,t,n)=>{var i=n(4932),r=n(7422),o=n(5389),a=n(5128),s=n(3937),l=n(7301),c=n(3714),d=n(3488),h=n(6449);e.exports=function(e,t,n){t=t.length?i(t,(function(e){return h(e)?function(t){return r(t,1===e.length?e[0]:e)}:e})):[d];var p=-1;t=i(t,l(o));var u=a(e,(function(e,n,r){return{criteria:i(t,(function(t){return t(e)})),index:++p,value:e}}));return s(u,(function(e,t){return c(e,t,n)}))}},6001:(e,t,n)=>{var i=n(7420),r=n(631);e.exports=function(e,t){return i(e,t,(function(t,n){return r(e,n)}))}},7420:(e,t,n)=>{var i=n(7422),r=n(3170),o=n(1769);e.exports=function(e,t,n){for(var a=-1,s=t.length,l={};++a<s;){var c=t[a],d=i(e,c);n(d,c)&&r(l,o(c,e),d)}return l}},7237:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},7255:(e,t,n)=>{var i=n(7422);e.exports=function(e){return function(t){return i(t,e)}}},6151:e=>{var t=Math.ceil,n=Math.max;e.exports=function(e,i,r,o){for(var a=-1,s=n(t((i-e)/(r||1)),0),l=Array(s);s--;)l[o?s:++a]=e,e+=r;return l}},5558:e=>{e.exports=function(e,t,n,i,r){return r(e,(function(e,r,o){n=i?(i=!1,e):t(n,e,r,o)})),n}},9302:(e,t,n)=>{var i=n(3488),r=n(6757),o=n(2865);e.exports=function(e,t){return o(r(e,t,i),e+"")}},3170:(e,t,n)=>{var i=n(6547),r=n(1769),o=n(361),a=n(3805),s=n(7797);e.exports=function(e,t,n,l){if(!a(e))return e;for(var c=-1,d=(t=r(t,e)).length,h=d-1,p=e;null!=p&&++c<d;){var u=s(t[c]),f=n;if("__proto__"===u||"constructor"===u||"prototype"===u)return e;if(c!=h){var g=p[u];void 0===(f=l?l(g,u,p):void 0)&&(f=a(g)?g:o(t[c+1])?[]:{})}i(p,u,f),p=p[u]}return e}},9570:(e,t,n)=>{var i=n(7334),r=n(3243),o=n(3488),a=r?function(e,t){return r(e,"toString",{configurable:!0,enumerable:!1,value:i(t),writable:!0})}:o;e.exports=a},3937:e=>{e.exports=function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}},8096:e=>{e.exports=function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}},7556:(e,t,n)=>{var i=n(1873),r=n(4932),o=n(6449),a=n(4394),s=i?i.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return r(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},4128:(e,t,n)=>{var i=n(1800),r=/^\s+/;e.exports=function(e){return e?e.slice(0,i(e)+1).replace(r,""):e}},7301:e=>{e.exports=function(e){return function(t){return e(t)}}},5765:(e,t,n)=>{var i=n(8859),r=n(5325),o=n(9905),a=n(9219),s=n(4517),l=n(4247);e.exports=function(e,t,n){var c=-1,d=r,h=e.length,p=!0,u=[],f=u;if(n)p=!1,d=o;else if(h>=200){var g=t?null:s(e);if(g)return l(g);p=!1,d=a,f=new i}else f=t?[]:u;e:for(;++c<h;){var m=e[c],v=t?t(m):m;if(m=n||0!==m?m:0,p&&v==v){for(var y=f.length;y--;)if(f[y]===v)continue e;t&&f.push(v),u.push(m)}else d(f,v,n)||(f!==u&&f.push(v),u.push(m))}return u}},514:(e,t,n)=>{var i=n(4932);e.exports=function(e,t){return i(t,(function(t){return e[t]}))}},1234:e=>{e.exports=function(e,t,n){for(var i=-1,r=e.length,o=t.length,a={};++i<r;){var s=i<o?t[i]:void 0;n(a,e[i],s)}return a}},9219:e=>{e.exports=function(e,t){return e.has(t)}},4066:(e,t,n)=>{var i=n(3488);e.exports=function(e){return"function"==typeof e?e:i}},1769:(e,t,n)=>{var i=n(6449),r=n(8586),o=n(1802),a=n(3222);e.exports=function(e,t){return i(e)?e:r(e,t)?[e]:o(a(e))}},9653:(e,t,n)=>{var i=n(7828);e.exports=function(e){var t=new e.constructor(e.byteLength);return new i(t).set(new i(e)),t}},3290:(e,t,n)=>{e=n.nmd(e);var i=n(9325),r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r?i.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,i=s?s(n):new e.constructor(n);return e.copy(i),i}},6169:(e,t,n)=>{var i=n(9653);e.exports=function(e,t){var n=t?i(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},3201:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},3736:(e,t,n)=>{var i=n(1873),r=i?i.prototype:void 0,o=r?r.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},1961:(e,t,n)=>{var i=n(9653);e.exports=function(e,t){var n=t?i(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},3730:(e,t,n)=>{var i=n(4394);e.exports=function(e,t){if(e!==t){var n=void 0!==e,r=null===e,o=e==e,a=i(e),s=void 0!==t,l=null===t,c=t==t,d=i(t);if(!l&&!d&&!a&&e>t||a&&s&&c&&!l&&!d||r&&s&&c||!n&&c||!o)return 1;if(!r&&!a&&!d&&e<t||d&&n&&o&&!r&&!a||l&&n&&o||!s&&o||!c)return-1}return 0}},3714:(e,t,n)=>{var i=n(3730);e.exports=function(e,t,n){for(var r=-1,o=e.criteria,a=t.criteria,s=o.length,l=n.length;++r<s;){var c=i(o[r],a[r]);if(c)return r>=l?c:c*("desc"==n[r]?-1:1)}return e.index-t.index}},3007:e=>{e.exports=function(e,t){var n=-1,i=e.length;for(t||(t=Array(i));++n<i;)t[n]=e[n];return t}},1791:(e,t,n)=>{var i=n(6547),r=n(3360);e.exports=function(e,t,n,o){var a=!n;n||(n={});for(var s=-1,l=t.length;++s<l;){var c=t[s],d=o?o(n[c],e[c],c,n,e):void 0;void 0===d&&(d=e[c]),a?r(n,c,d):i(n,c,d)}return n}},2271:(e,t,n)=>{var i=n(1791),r=n(4664);e.exports=function(e,t){return i(e,r(e),t)}},8948:(e,t,n)=>{var i=n(1791),r=n(6375);e.exports=function(e,t){return i(e,r(e),t)}},5481:(e,t,n)=>{var i=n(9325)["__core-js_shared__"];e.exports=i},999:(e,t,n)=>{var i=n(9302),r=n(6800);e.exports=function(e){return i((function(t,n){var i=-1,o=n.length,a=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,s&&r(n[0],n[1],s)&&(a=o<3?void 0:a,o=1),t=Object(t);++i<o;){var l=n[i];l&&e(t,l,i,a)}return t}))}},8329:(e,t,n)=>{var i=n(4894);e.exports=function(e,t){return function(n,r){if(null==n)return n;if(!i(n))return e(n,r);for(var o=n.length,a=t?o:-1,s=Object(n);(t?a--:++a<o)&&!1!==r(s[a],a,s););return n}}},3221:e=>{e.exports=function(e){return function(t,n,i){for(var r=-1,o=Object(t),a=i(t),s=a.length;s--;){var l=a[e?s:++r];if(!1===n(o[l],l,o))break}return t}}},2006:(e,t,n)=>{var i=n(5389),r=n(4894),o=n(5950);e.exports=function(e){return function(t,n,a){var s=Object(t);if(!r(t)){var l=i(n,3);t=o(t),n=function(e){return l(s[e],e,s)}}var c=e(t,n,a);return c>-1?s[l?t[c]:c]:void 0}}},5508:(e,t,n)=>{var i=n(6151),r=n(6800),o=n(7400);e.exports=function(e){return function(t,n,a){return a&&"number"!=typeof a&&r(t,n,a)&&(n=a=void 0),t=o(t),void 0===n?(n=t,t=0):n=o(n),a=void 0===a?t<n?1:-1:o(a),i(t,n,a,e)}}},4517:(e,t,n)=>{var i=n(6545),r=n(3950),o=n(4247),a=i&&1/o(new i([,-0]))[1]==1/0?function(e){return new i(e)}:r;e.exports=a},3243:(e,t,n)=>{var i=n(6110),r=function(){try{var e=i(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=r},5911:(e,t,n)=>{var i=n(8859),r=n(4248),o=n(9219);e.exports=function(e,t,n,a,s,l){var c=1&n,d=e.length,h=t.length;if(d!=h&&!(c&&h>d))return!1;var p=l.get(e),u=l.get(t);if(p&&u)return p==t&&u==e;var f=-1,g=!0,m=2&n?new i:void 0;for(l.set(e,t),l.set(t,e);++f<d;){var v=e[f],y=t[f];if(a)var _=c?a(y,v,f,t,e,l):a(v,y,f,e,t,l);if(void 0!==_){if(_)continue;g=!1;break}if(m){if(!r(t,(function(e,t){if(!o(m,t)&&(v===e||s(v,e,n,a,l)))return m.push(t)}))){g=!1;break}}else if(v!==y&&!s(v,y,n,a,l)){g=!1;break}}return l.delete(e),l.delete(t),g}},1986:(e,t,n)=>{var i=n(1873),r=n(7828),o=n(5288),a=n(5911),s=n(317),l=n(4247),c=i?i.prototype:void 0,d=c?c.valueOf:void 0;e.exports=function(e,t,n,i,c,h,p){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!h(new r(e),new r(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var u=s;case"[object Set]":var f=1&i;if(u||(u=l),e.size!=t.size&&!f)return!1;var g=p.get(e);if(g)return g==t;i|=2,p.set(e,t);var m=a(u(e),u(t),i,c,h,p);return p.delete(e),m;case"[object Symbol]":if(d)return d.call(e)==d.call(t)}return!1}},689:(e,t,n)=>{var i=n(2),r=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,o,a,s){var l=1&n,c=i(e),d=c.length;if(d!=i(t).length&&!l)return!1;for(var h=d;h--;){var p=c[h];if(!(l?p in t:r.call(t,p)))return!1}var u=s.get(e),f=s.get(t);if(u&&f)return u==t&&f==e;var g=!0;s.set(e,t),s.set(t,e);for(var m=l;++h<d;){var v=e[p=c[h]],y=t[p];if(o)var _=l?o(y,v,p,t,e,s):o(v,y,p,e,t,s);if(!(void 0===_?v===y||a(v,y,n,o,s):_)){g=!1;break}m||(m="constructor"==p)}if(g&&!m){var b=e.constructor,x=t.constructor;b==x||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof x&&x instanceof x||(g=!1)}return s.delete(e),s.delete(t),g}},8816:(e,t,n)=>{var i=n(5970),r=n(6757),o=n(2865);e.exports=function(e){return o(r(e,void 0,i),e+"")}},4840:(e,t,n)=>{var i="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=i},2:(e,t,n)=>{var i=n(2199),r=n(4664),o=n(5950);e.exports=function(e){return i(e,o,r)}},3349:(e,t,n)=>{var i=n(2199),r=n(6375),o=n(7241);e.exports=function(e){return i(e,o,r)}},2651:(e,t,n)=>{var i=n(4218);e.exports=function(e,t){var n=e.__data__;return i(t)?n["string"==typeof t?"string":"hash"]:n.map}},776:(e,t,n)=>{var i=n(756),r=n(5950);e.exports=function(e){for(var t=r(e),n=t.length;n--;){var o=t[n],a=e[o];t[n]=[o,a,i(a)]}return t}},6110:(e,t,n)=>{var i=n(5083),r=n(392);e.exports=function(e,t){var n=r(e,t);return i(n)?n:void 0}},8879:(e,t,n)=>{var i=n(4335)(Object.getPrototypeOf,Object);e.exports=i},659:(e,t,n)=>{var i=n(1873),r=Object.prototype,o=r.hasOwnProperty,a=r.toString,s=i?i.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var i=!0}catch(e){}var r=a.call(e);return i&&(t?e[s]=n:delete e[s]),r}},4664:(e,t,n)=>{var i=n(9770),r=n(3345),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),i(a(e),(function(t){return o.call(e,t)})))}:r;e.exports=s},6375:(e,t,n)=>{var i=n(4528),r=n(8879),o=n(4664),a=n(3345),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)i(t,o(e)),e=r(e);return t}:a;e.exports=s},5861:(e,t,n)=>{var i=n(5580),r=n(8223),o=n(2804),a=n(6545),s=n(8303),l=n(2552),c=n(7473),d="[object Map]",h="[object Promise]",p="[object Set]",u="[object WeakMap]",f="[object DataView]",g=c(i),m=c(r),v=c(o),y=c(a),_=c(s),b=l;(i&&b(new i(new ArrayBuffer(1)))!=f||r&&b(new r)!=d||o&&b(o.resolve())!=h||a&&b(new a)!=p||s&&b(new s)!=u)&&(b=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,i=n?c(n):"";if(i)switch(i){case g:return f;case m:return d;case v:return h;case y:return p;case _:return u}return t}),e.exports=b},392:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},9326:(e,t,n)=>{var i=n(1769),r=n(2428),o=n(6449),a=n(361),s=n(294),l=n(7797);e.exports=function(e,t,n){for(var c=-1,d=(t=i(t,e)).length,h=!1;++c<d;){var p=l(t[c]);if(!(h=null!=e&&n(e,p)))break;e=e[p]}return h||++c!=d?h:!!(d=null==e?0:e.length)&&s(d)&&a(p,d)&&(o(e)||r(e))}},9698:e=>{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},2032:(e,t,n)=>{var i=n(1042);e.exports=function(){this.__data__=i?i(null):{},this.size=0}},3862:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},6721:(e,t,n)=>{var i=n(1042),r=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(i){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return r.call(t,e)?t[e]:void 0}},2749:(e,t,n)=>{var i=n(1042),r=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return i?void 0!==t[e]:r.call(t,e)}},5749:(e,t,n)=>{var i=n(1042);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=i&&void 0===t?"__lodash_hash_undefined__":t,this}},6189:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,i=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(i.index=e.index,i.input=e.input),i}},7199:(e,t,n)=>{var i=n(9653),r=n(6169),o=n(3201),a=n(3736),s=n(1961);e.exports=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return i(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return r(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(e,n);case"[object Map]":case"[object Set]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return o(e);case"[object Symbol]":return a(e)}}},5529:(e,t,n)=>{var i=n(9344),r=n(8879),o=n(5527);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:i(r(e))}},5891:(e,t,n)=>{var i=n(1873),r=n(2428),o=n(6449),a=i?i.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||r(e)||!!(a&&e&&e[a])}},361:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var i=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==i||"symbol"!=i&&t.test(e))&&e>-1&&e%1==0&&e<n}},6800:(e,t,n)=>{var i=n(5288),r=n(4894),o=n(361),a=n(3805);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?r(n)&&o(t,n.length):"string"==s&&t in n)&&i(n[t],e)}},8586:(e,t,n)=>{var i=n(6449),r=n(4394),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(i(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!r(e))||a.test(e)||!o.test(e)||null!=t&&e in Object(t)}},4218:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},7296:(e,t,n)=>{var i,r=n(5481),o=(i=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+i:"";e.exports=function(e){return!!o&&o in e}},5527:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},756:(e,t,n)=>{var i=n(3805);e.exports=function(e){return e==e&&!i(e)}},3702:e=>{e.exports=function(){this.__data__=[],this.size=0}},80:(e,t,n)=>{var i=n(6025),r=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=i(t,e);return!(n<0||(n==t.length-1?t.pop():r.call(t,n,1),--this.size,0))}},4739:(e,t,n)=>{var i=n(6025);e.exports=function(e){var t=this.__data__,n=i(t,e);return n<0?void 0:t[n][1]}},8655:(e,t,n)=>{var i=n(6025);e.exports=function(e){return i(this.__data__,e)>-1}},1175:(e,t,n)=>{var i=n(6025);e.exports=function(e,t){var n=this.__data__,r=i(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}},3040:(e,t,n)=>{var i=n(1549),r=n(79),o=n(8223);e.exports=function(){this.size=0,this.__data__={hash:new i,map:new(o||r),string:new i}}},7670:(e,t,n)=>{var i=n(2651);e.exports=function(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}},289:(e,t,n)=>{var i=n(2651);e.exports=function(e){return i(this,e).get(e)}},4509:(e,t,n)=>{var i=n(2651);e.exports=function(e){return i(this,e).has(e)}},2949:(e,t,n)=>{var i=n(2651);e.exports=function(e,t){var n=i(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}},317:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}},7197:e=>{e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},2224:(e,t,n)=>{var i=n(104);e.exports=function(e){var t=i(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},1042:(e,t,n)=>{var i=n(6110)(Object,"create");e.exports=i},3650:(e,t,n)=>{var i=n(4335)(Object.keys,Object);e.exports=i},181:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},6009:(e,t,n)=>{e=n.nmd(e);var i=n(4840),r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r&&i.process,s=function(){try{return o&&o.require&&o.require("util").types||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s},9350:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},4335:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},6757:(e,t,n)=>{var i=n(1033),r=Math.max;e.exports=function(e,t,n){return t=r(void 0===t?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=r(o.length-t,0),l=Array(s);++a<s;)l[a]=o[t+a];a=-1;for(var c=Array(t+1);++a<t;)c[a]=o[a];return c[t]=n(l),i(e,this,c)}}},9325:(e,t,n)=>{var i=n(4840),r="object"==typeof self&&self&&self.Object===Object&&self,o=i||r||Function("return this")();e.exports=o},4974:e=>{e.exports=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}},1380:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},1459:e=>{e.exports=function(e){return this.__data__.has(e)}},4247:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},2865:(e,t,n)=>{var i=n(9570),r=n(1811)(i);e.exports=r},1811:e=>{var t=Date.now;e.exports=function(e){var n=0,i=0;return function(){var r=t(),o=16-(r-i);if(i=r,o>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},1420:(e,t,n)=>{var i=n(79);e.exports=function(){this.__data__=new i,this.size=0}},938:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},3605:e=>{e.exports=function(e){return this.__data__.get(e)}},9817:e=>{e.exports=function(e){return this.__data__.has(e)}},945:(e,t,n)=>{var i=n(79),r=n(8223),o=n(3661);e.exports=function(e,t){var n=this.__data__;if(n instanceof i){var a=n.__data__;if(!r||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(a)}return n.set(e,t),this.size=n.size,this}},6959:e=>{e.exports=function(e,t,n){for(var i=n-1,r=e.length;++i<r;)if(e[i]===t)return i;return-1}},1993:(e,t,n)=>{var i=n(9811),r=n(9698),o=n(7927);e.exports=function(e){return r(e)?o(e):i(e)}},1802:(e,t,n)=>{var i=n(2224),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=i((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(r,(function(e,n,i,r){t.push(i?r.replace(o,"$1"):n||e)})),t}));e.exports=a},7797:(e,t,n)=>{var i=n(4394);e.exports=function(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},7473:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},1800:e=>{var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},7927:e=>{var t="\\ud800-\\udfff",n="["+t+"]",i="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",r="\\ud83c[\\udffb-\\udfff]",o="[^"+t+"]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",l="(?:"+i+"|"+r+")?",c="[\\ufe0e\\ufe0f]?",d=c+l+"(?:\\u200d(?:"+[o,a,s].join("|")+")"+c+l+")*",h="(?:"+[o+i+"?",i,a,s,n].join("|")+")",p=RegExp(r+"(?="+r+")|"+h+d,"g");e.exports=function(e){for(var t=p.lastIndex=0;p.test(e);)++t;return t}},2629:(e,t,n)=>{var i=n(9999);e.exports=function(e){return i(e,4)}},8055:(e,t,n)=>{var i=n(9999);e.exports=function(e){return i(e,5)}},7334:e=>{e.exports=function(e){return function(){return e}}},4684:(e,t,n)=>{var i=n(9302),r=n(5288),o=n(6800),a=n(7241),s=Object.prototype,l=s.hasOwnProperty,c=i((function(e,t){e=Object(e);var n=-1,i=t.length,c=i>2?t[2]:void 0;for(c&&o(t[0],t[1],c)&&(i=1);++n<i;)for(var d=t[n],h=a(d),p=-1,u=h.length;++p<u;){var f=h[p],g=e[f];(void 0===g||r(g,s[f])&&!l.call(e,f))&&(e[f]=d[f])}return e}));e.exports=c},6135:(e,t,n)=>{e.exports=n(9754)},5288:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},7612:(e,t,n)=>{var i=n(9770),r=n(6574),o=n(5389),a=n(6449);e.exports=function(e,t){return(a(e)?i:r)(e,o(t,3))}},7309:(e,t,n)=>{var i=n(2006)(n(4713));e.exports=i},4713:(e,t,n)=>{var i=n(2523),r=n(5389),o=n(1489),a=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var l=null==n?0:o(n);return l<0&&(l=a(s+l,0)),i(e,r(t,3),l)}},5970:(e,t,n)=>{var i=n(3120);e.exports=function(e){return null!=e&&e.length?i(e,1):[]}},9754:(e,t,n)=>{var i=n(3729),r=n(909),o=n(4066),a=n(6449);e.exports=function(e,t){return(a(e)?i:r)(e,o(t))}},2420:(e,t,n)=>{var i=n(6649),r=n(4066),o=n(7241);e.exports=function(e,t){return null==e?e:i(e,r(t),o)}},8156:(e,t,n)=>{var i=n(7422);e.exports=function(e,t,n){var r=null==e?void 0:i(e,t);return void 0===r?n:r}},1448:(e,t,n)=>{var i=n(426),r=n(9326);e.exports=function(e,t){return null!=e&&r(e,t,i)}},631:(e,t,n)=>{var i=n(8077),r=n(9326);e.exports=function(e,t){return null!=e&&r(e,t,i)}},3488:e=>{e.exports=function(e){return e}},2428:(e,t,n)=>{var i=n(7534),r=n(346),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,l=i(function(){return arguments}())?i:function(e){return r(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},6449:e=>{var t=Array.isArray;e.exports=t},4894:(e,t,n)=>{var i=n(1882),r=n(294);e.exports=function(e){return null!=e&&r(e.length)&&!i(e)}},3693:(e,t,n)=>{var i=n(4894),r=n(346);e.exports=function(e){return r(e)&&i(e)}},3656:(e,t,n)=>{e=n.nmd(e);var i=n(9325),r=n(9935),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,s=a&&a.exports===o?i.Buffer:void 0,l=(s?s.isBuffer:void 0)||r;e.exports=l},2193:(e,t,n)=>{var i=n(8984),r=n(5861),o=n(2428),a=n(6449),s=n(4894),l=n(3656),c=n(5527),d=n(7167),h=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(a(e)||"string"==typeof e||"function"==typeof e.splice||l(e)||d(e)||o(e)))return!e.length;var t=r(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(c(e))return!i(e).length;for(var n in e)if(h.call(e,n))return!1;return!0}},1882:(e,t,n)=>{var i=n(2552),r=n(3805);e.exports=function(e){if(!r(e))return!1;var t=i(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},294:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},7730:(e,t,n)=>{var i=n(9172),r=n(7301),o=n(6009),a=o&&o.isMap,s=a?r(a):i;e.exports=s},3805:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},346:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},1331:(e,t,n)=>{var i=n(2552),r=n(8879),o=n(346),a=Function.prototype,s=Object.prototype,l=a.toString,c=s.hasOwnProperty,d=l.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=i(e))return!1;var t=r(e);if(null===t)return!0;var n=c.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==d}},8440:(e,t,n)=>{var i=n(6038),r=n(7301),o=n(6009),a=o&&o.isSet,s=a?r(a):i;e.exports=s},5015:(e,t,n)=>{var i=n(2552),r=n(6449),o=n(346);e.exports=function(e){return"string"==typeof e||!r(e)&&o(e)&&"[object String]"==i(e)}},4394:(e,t,n)=>{var i=n(2552),r=n(346);e.exports=function(e){return"symbol"==typeof e||r(e)&&"[object Symbol]"==i(e)}},7167:(e,t,n)=>{var i=n(4901),r=n(7301),o=n(6009),a=o&&o.isTypedArray,s=a?r(a):i;e.exports=s},2216:e=>{e.exports=function(e){return void 0===e}},5950:(e,t,n)=>{var i=n(695),r=n(8984),o=n(4894);e.exports=function(e){return o(e)?i(e):r(e)}},7241:(e,t,n)=>{var i=n(695),r=n(2903),o=n(4894);e.exports=function(e){return o(e)?i(e,!0):r(e)}},8090:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},2543:function(e,t,n){var i;e=n.nmd(e),function(){var r,o="Expected a function",a="__lodash_hash_undefined__",s="__lodash_placeholder__",l=32,c=128,d=1/0,h=9007199254740991,p=NaN,u=4294967295,f=[["ary",c],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",l],["partialRight",64],["rearg",256]],g="[object Arguments]",m="[object Array]",v="[object Boolean]",y="[object Date]",_="[object Error]",b="[object Function]",x="[object GeneratorFunction]",w="[object Map]",S="[object Number]",E="[object Object]",C="[object Promise]",z="[object RegExp]",k="[object Set]",M="[object String]",A="[object Symbol]",T="[object WeakMap]",N="[object ArrayBuffer]",I="[object DataView]",O="[object Float32Array]",L="[object Float64Array]",P="[object Int8Array]",H="[object Int16Array]",R="[object Int32Array]",V="[object Uint8Array]",B="[object Uint8ClampedArray]",D="[object Uint16Array]",F="[object Uint32Array]",j=/\b__p \+= '';/g,U=/\b(__p \+=) '' \+/g,$=/(__e\(.*?\)|\b__t\)) \+\n'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,q=/[&<>"']/g,X=RegExp(G.source),W=RegExp(q.source),K=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,J=/<%=([\s\S]+?)%>/g,Z=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Q=/^\w*$/,ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,te=/[\\^$.*+?()[\]{}|]/g,ne=RegExp(te.source),ie=/^\s+/,re=/\s/,oe=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ae=/\{\n\/\* \[wrapped with (.+)\] \*/,se=/,? & /,le=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ce=/[()=,{}\[\]\/\s]/,de=/\\(\\)?/g,he=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pe=/\w*$/,ue=/^[-+]0x[0-9a-f]+$/i,fe=/^0b[01]+$/i,ge=/^\[object .+?Constructor\]$/,me=/^0o[0-7]+$/i,ve=/^(?:0|[1-9]\d*)$/,ye=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_e=/($^)/,be=/['\n\r\u2028\u2029\\]/g,xe="\\ud800-\\udfff",we="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Se="\\u2700-\\u27bf",Ee="a-z\\xdf-\\xf6\\xf8-\\xff",Ce="A-Z\\xc0-\\xd6\\xd8-\\xde",ze="\\ufe0e\\ufe0f",ke="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Me="["+xe+"]",Ae="["+ke+"]",Te="["+we+"]",Ne="\\d+",Ie="["+Se+"]",Oe="["+Ee+"]",Le="[^"+xe+ke+Ne+Se+Ee+Ce+"]",Pe="\\ud83c[\\udffb-\\udfff]",He="[^"+xe+"]",Re="(?:\\ud83c[\\udde6-\\uddff]){2}",Ve="[\\ud800-\\udbff][\\udc00-\\udfff]",Be="["+Ce+"]",De="\\u200d",Fe="(?:"+Oe+"|"+Le+")",je="(?:"+Be+"|"+Le+")",Ue="(?:['’](?:d|ll|m|re|s|t|ve))?",$e="(?:['’](?:D|LL|M|RE|S|T|VE))?",Ge="(?:"+Te+"|"+Pe+")?",qe="["+ze+"]?",Xe=qe+Ge+"(?:"+De+"(?:"+[He,Re,Ve].join("|")+")"+qe+Ge+")*",We="(?:"+[Ie,Re,Ve].join("|")+")"+Xe,Ke="(?:"+[He+Te+"?",Te,Re,Ve,Me].join("|")+")",Ye=RegExp("['’]","g"),Je=RegExp(Te,"g"),Ze=RegExp(Pe+"(?="+Pe+")|"+Ke+Xe,"g"),Qe=RegExp([Be+"?"+Oe+"+"+Ue+"(?="+[Ae,Be,"$"].join("|")+")",je+"+"+$e+"(?="+[Ae,Be+Fe,"$"].join("|")+")",Be+"?"+Fe+"+"+Ue,Be+"+"+$e,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ne,We].join("|"),"g"),et=RegExp("["+De+xe+we+ze+"]"),tt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,nt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],it=-1,rt={};rt[O]=rt[L]=rt[P]=rt[H]=rt[R]=rt[V]=rt[B]=rt[D]=rt[F]=!0,rt[g]=rt[m]=rt[N]=rt[v]=rt[I]=rt[y]=rt[_]=rt[b]=rt[w]=rt[S]=rt[E]=rt[z]=rt[k]=rt[M]=rt[T]=!1;var ot={};ot[g]=ot[m]=ot[N]=ot[I]=ot[v]=ot[y]=ot[O]=ot[L]=ot[P]=ot[H]=ot[R]=ot[w]=ot[S]=ot[E]=ot[z]=ot[k]=ot[M]=ot[A]=ot[V]=ot[B]=ot[D]=ot[F]=!0,ot[_]=ot[b]=ot[T]=!1;var at={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},st=parseFloat,lt=parseInt,ct="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,dt="object"==typeof self&&self&&self.Object===Object&&self,ht=ct||dt||Function("return this")(),pt=t&&!t.nodeType&&t,ut=pt&&e&&!e.nodeType&&e,ft=ut&&ut.exports===pt,gt=ft&&ct.process,mt=function(){try{return ut&&ut.require&&ut.require("util").types||gt&&gt.binding&&gt.binding("util")}catch(e){}}(),vt=mt&&mt.isArrayBuffer,yt=mt&&mt.isDate,_t=mt&&mt.isMap,bt=mt&&mt.isRegExp,xt=mt&&mt.isSet,wt=mt&&mt.isTypedArray;function St(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Et(e,t,n,i){for(var r=-1,o=null==e?0:e.length;++r<o;){var a=e[r];t(i,a,n(a),e)}return i}function Ct(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}function zt(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function kt(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(!t(e[n],n,e))return!1;return!0}function Mt(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}function At(e,t){return!(null==e||!e.length)&&Bt(e,t,0)>-1}function Tt(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}function Nt(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}function It(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}function Ot(e,t,n,i){var r=-1,o=null==e?0:e.length;for(i&&o&&(n=e[++r]);++r<o;)n=t(n,e[r],r,e);return n}function Lt(e,t,n,i){var r=null==e?0:e.length;for(i&&r&&(n=e[--r]);r--;)n=t(n,e[r],r,e);return n}function Pt(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}var Ht=Ut("length");function Rt(e,t,n){var i;return n(e,(function(e,n,r){if(t(e,n,r))return i=n,!1})),i}function Vt(e,t,n,i){for(var r=e.length,o=n+(i?1:-1);i?o--:++o<r;)if(t(e[o],o,e))return o;return-1}function Bt(e,t,n){return t==t?function(e,t,n){for(var i=n-1,r=e.length;++i<r;)if(e[i]===t)return i;return-1}(e,t,n):Vt(e,Ft,n)}function Dt(e,t,n,i){for(var r=n-1,o=e.length;++r<o;)if(i(e[r],t))return r;return-1}function Ft(e){return e!=e}function jt(e,t){var n=null==e?0:e.length;return n?qt(e,t)/n:p}function Ut(e){return function(t){return null==t?r:t[e]}}function $t(e){return function(t){return null==e?r:e[t]}}function Gt(e,t,n,i,r){return r(e,(function(e,r,o){n=i?(i=!1,e):t(n,e,r,o)})),n}function qt(e,t){for(var n,i=-1,o=e.length;++i<o;){var a=t(e[i]);a!==r&&(n=n===r?a:n+a)}return n}function Xt(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}function Wt(e){return e?e.slice(0,pn(e)+1).replace(ie,""):e}function Kt(e){return function(t){return e(t)}}function Yt(e,t){return Nt(t,(function(t){return e[t]}))}function Jt(e,t){return e.has(t)}function Zt(e,t){for(var n=-1,i=e.length;++n<i&&Bt(t,e[n],0)>-1;);return n}function Qt(e,t){for(var n=e.length;n--&&Bt(t,e[n],0)>-1;);return n}var en=$t({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",Ĳ:"IJ",ĳ:"ij",Œ:"Oe",œ:"oe",ŉ:"'n",ſ:"s"}),tn=$t({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function nn(e){return"\\"+at[e]}function rn(e){return et.test(e)}function on(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function an(e,t){return function(n){return e(t(n))}}function sn(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n];a!==t&&a!==s||(e[n]=s,o[r++]=n)}return o}function ln(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function cn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}function dn(e){return rn(e)?function(e){for(var t=Ze.lastIndex=0;Ze.test(e);)++t;return t}(e):Ht(e)}function hn(e){return rn(e)?function(e){return e.match(Ze)||[]}(e):function(e){return e.split("")}(e)}function pn(e){for(var t=e.length;t--&&re.test(e.charAt(t)););return t}var un=$t({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),fn=function e(t){var n,i=(t=null==t?ht:fn.defaults(ht.Object(),t,fn.pick(ht,nt))).Array,re=t.Date,xe=t.Error,we=t.Function,Se=t.Math,Ee=t.Object,Ce=t.RegExp,ze=t.String,ke=t.TypeError,Me=i.prototype,Ae=we.prototype,Te=Ee.prototype,Ne=t["__core-js_shared__"],Ie=Ae.toString,Oe=Te.hasOwnProperty,Le=0,Pe=(n=/[^.]+$/.exec(Ne&&Ne.keys&&Ne.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",He=Te.toString,Re=Ie.call(Ee),Ve=ht._,Be=Ce("^"+Ie.call(Oe).replace(te,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),De=ft?t.Buffer:r,Fe=t.Symbol,je=t.Uint8Array,Ue=De?De.allocUnsafe:r,$e=an(Ee.getPrototypeOf,Ee),Ge=Ee.create,qe=Te.propertyIsEnumerable,Xe=Me.splice,We=Fe?Fe.isConcatSpreadable:r,Ke=Fe?Fe.iterator:r,Ze=Fe?Fe.toStringTag:r,et=function(){try{var e=lo(Ee,"defineProperty");return e({},"",{}),e}catch(e){}}(),at=t.clearTimeout!==ht.clearTimeout&&t.clearTimeout,ct=re&&re.now!==ht.Date.now&&re.now,dt=t.setTimeout!==ht.setTimeout&&t.setTimeout,pt=Se.ceil,ut=Se.floor,gt=Ee.getOwnPropertySymbols,mt=De?De.isBuffer:r,Ht=t.isFinite,$t=Me.join,gn=an(Ee.keys,Ee),mn=Se.max,vn=Se.min,yn=re.now,_n=t.parseInt,bn=Se.random,xn=Me.reverse,wn=lo(t,"DataView"),Sn=lo(t,"Map"),En=lo(t,"Promise"),Cn=lo(t,"Set"),zn=lo(t,"WeakMap"),kn=lo(Ee,"create"),Mn=zn&&new zn,An={},Tn=Ro(wn),Nn=Ro(Sn),In=Ro(En),On=Ro(Cn),Ln=Ro(zn),Pn=Fe?Fe.prototype:r,Hn=Pn?Pn.valueOf:r,Rn=Pn?Pn.toString:r;function Vn(e){if(es(e)&&!Ua(e)&&!(e instanceof jn)){if(e instanceof Fn)return e;if(Oe.call(e,"__wrapped__"))return Vo(e)}return new Fn(e)}var Bn=function(){function e(){}return function(t){if(!Qa(t))return{};if(Ge)return Ge(t);e.prototype=t;var n=new e;return e.prototype=r,n}}();function Dn(){}function Fn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=r}function jn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=u,this.__views__=[]}function Un(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function $n(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Gn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function qn(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Gn;++t<n;)this.add(e[t])}function Xn(e){var t=this.__data__=new $n(e);this.size=t.size}function Wn(e,t){var n=Ua(e),i=!n&&ja(e),r=!n&&!i&&Xa(e),o=!n&&!i&&!r&&ls(e),a=n||i||r||o,s=a?Xt(e.length,ze):[],l=s.length;for(var c in e)!t&&!Oe.call(e,c)||a&&("length"==c||r&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||mo(c,l))||s.push(c);return s}function Kn(e){var t=e.length;return t?e[Gi(0,t-1)]:r}function Yn(e,t){return Io(zr(e),oi(t,0,e.length))}function Jn(e){return Io(zr(e))}function Zn(e,t,n){(n!==r&&!Ba(e[t],n)||n===r&&!(t in e))&&ii(e,t,n)}function Qn(e,t,n){var i=e[t];Oe.call(e,t)&&Ba(i,n)&&(n!==r||t in e)||ii(e,t,n)}function ei(e,t){for(var n=e.length;n--;)if(Ba(e[n][0],t))return n;return-1}function ti(e,t,n,i){return di(e,(function(e,r,o){t(i,e,n(e),o)})),i}function ni(e,t){return e&&kr(t,Ts(t),e)}function ii(e,t,n){"__proto__"==t&&et?et(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ri(e,t){for(var n=-1,o=t.length,a=i(o),s=null==e;++n<o;)a[n]=s?r:Cs(e,t[n]);return a}function oi(e,t,n){return e==e&&(n!==r&&(e=e<=n?e:n),t!==r&&(e=e>=t?e:t)),e}function ai(e,t,n,i,o,a){var s,l=1&t,c=2&t,d=4&t;if(n&&(s=o?n(e,i,o,a):n(e)),s!==r)return s;if(!Qa(e))return e;var h=Ua(e);if(h){if(s=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Oe.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!l)return zr(e,s)}else{var p=po(e),u=p==b||p==x;if(Xa(e))return br(e,l);if(p==E||p==g||u&&!o){if(s=c||u?{}:fo(e),!l)return c?function(e,t){return kr(e,ho(e),t)}(e,function(e,t){return e&&kr(t,Ns(t),e)}(s,e)):function(e,t){return kr(e,co(e),t)}(e,ni(s,e))}else{if(!ot[p])return o?e:{};s=function(e,t,n){var i,r=e.constructor;switch(t){case N:return xr(e);case v:case y:return new r(+e);case I:return function(e,t){var n=t?xr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case O:case L:case P:case H:case R:case V:case B:case D:case F:return wr(e,n);case w:return new r;case S:case M:return new r(e);case z:return function(e){var t=new e.constructor(e.source,pe.exec(e));return t.lastIndex=e.lastIndex,t}(e);case k:return new r;case A:return i=e,Hn?Ee(Hn.call(i)):{}}}(e,p,l)}}a||(a=new Xn);var f=a.get(e);if(f)return f;a.set(e,s),os(e)?e.forEach((function(i){s.add(ai(i,t,n,i,e,a))})):ts(e)&&e.forEach((function(i,r){s.set(r,ai(i,t,n,r,e,a))}));var m=h?r:(d?c?to:eo:c?Ns:Ts)(e);return Ct(m||e,(function(i,r){m&&(i=e[r=i]),Qn(s,r,ai(i,t,n,r,e,a))})),s}function si(e,t,n){var i=n.length;if(null==e)return!i;for(e=Ee(e);i--;){var o=n[i],a=t[o],s=e[o];if(s===r&&!(o in e)||!a(s))return!1}return!0}function li(e,t,n){if("function"!=typeof e)throw new ke(o);return Mo((function(){e.apply(r,n)}),t)}function ci(e,t,n,i){var r=-1,o=At,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=Nt(t,Kt(n))),i?(o=Tt,a=!1):t.length>=200&&(o=Jt,a=!1,t=new qn(t));e:for(;++r<s;){var d=e[r],h=null==n?d:n(d);if(d=i||0!==d?d:0,a&&h==h){for(var p=c;p--;)if(t[p]===h)continue e;l.push(d)}else o(t,h,i)||l.push(d)}return l}Vn.templateSettings={escape:K,evaluate:Y,interpolate:J,variable:"",imports:{_:Vn}},Vn.prototype=Dn.prototype,Vn.prototype.constructor=Vn,Fn.prototype=Bn(Dn.prototype),Fn.prototype.constructor=Fn,jn.prototype=Bn(Dn.prototype),jn.prototype.constructor=jn,Un.prototype.clear=function(){this.__data__=kn?kn(null):{},this.size=0},Un.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Un.prototype.get=function(e){var t=this.__data__;if(kn){var n=t[e];return n===a?r:n}return Oe.call(t,e)?t[e]:r},Un.prototype.has=function(e){var t=this.__data__;return kn?t[e]!==r:Oe.call(t,e)},Un.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=kn&&t===r?a:t,this},$n.prototype.clear=function(){this.__data__=[],this.size=0},$n.prototype.delete=function(e){var t=this.__data__,n=ei(t,e);return!(n<0||(n==t.length-1?t.pop():Xe.call(t,n,1),--this.size,0))},$n.prototype.get=function(e){var t=this.__data__,n=ei(t,e);return n<0?r:t[n][1]},$n.prototype.has=function(e){return ei(this.__data__,e)>-1},$n.prototype.set=function(e,t){var n=this.__data__,i=ei(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this},Gn.prototype.clear=function(){this.size=0,this.__data__={hash:new Un,map:new(Sn||$n),string:new Un}},Gn.prototype.delete=function(e){var t=ao(this,e).delete(e);return this.size-=t?1:0,t},Gn.prototype.get=function(e){return ao(this,e).get(e)},Gn.prototype.has=function(e){return ao(this,e).has(e)},Gn.prototype.set=function(e,t){var n=ao(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},qn.prototype.add=qn.prototype.push=function(e){return this.__data__.set(e,a),this},qn.prototype.has=function(e){return this.__data__.has(e)},Xn.prototype.clear=function(){this.__data__=new $n,this.size=0},Xn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Xn.prototype.get=function(e){return this.__data__.get(e)},Xn.prototype.has=function(e){return this.__data__.has(e)},Xn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof $n){var i=n.__data__;if(!Sn||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new Gn(i)}return n.set(e,t),this.size=n.size,this};var di=Tr(yi),hi=Tr(_i,!0);function pi(e,t){var n=!0;return di(e,(function(e,i,r){return n=!!t(e,i,r)})),n}function ui(e,t,n){for(var i=-1,o=e.length;++i<o;){var a=e[i],s=t(a);if(null!=s&&(l===r?s==s&&!ss(s):n(s,l)))var l=s,c=a}return c}function fi(e,t){var n=[];return di(e,(function(e,i,r){t(e,i,r)&&n.push(e)})),n}function gi(e,t,n,i,r){var o=-1,a=e.length;for(n||(n=go),r||(r=[]);++o<a;){var s=e[o];t>0&&n(s)?t>1?gi(s,t-1,n,i,r):It(r,s):i||(r[r.length]=s)}return r}var mi=Nr(),vi=Nr(!0);function yi(e,t){return e&&mi(e,t,Ts)}function _i(e,t){return e&&vi(e,t,Ts)}function bi(e,t){return Mt(t,(function(t){return Ya(e[t])}))}function xi(e,t){for(var n=0,i=(t=mr(t,e)).length;null!=e&&n<i;)e=e[Ho(t[n++])];return n&&n==i?e:r}function wi(e,t,n){var i=t(e);return Ua(e)?i:It(i,n(e))}function Si(e){return null==e?e===r?"[object Undefined]":"[object Null]":Ze&&Ze in Ee(e)?function(e){var t=Oe.call(e,Ze),n=e[Ze];try{e[Ze]=r;var i=!0}catch(e){}var o=He.call(e);return i&&(t?e[Ze]=n:delete e[Ze]),o}(e):function(e){return He.call(e)}(e)}function Ei(e,t){return e>t}function Ci(e,t){return null!=e&&Oe.call(e,t)}function zi(e,t){return null!=e&&t in Ee(e)}function ki(e,t,n){for(var o=n?Tt:At,a=e[0].length,s=e.length,l=s,c=i(s),d=1/0,h=[];l--;){var p=e[l];l&&t&&(p=Nt(p,Kt(t))),d=vn(p.length,d),c[l]=!n&&(t||a>=120&&p.length>=120)?new qn(l&&p):r}p=e[0];var u=-1,f=c[0];e:for(;++u<a&&h.length<d;){var g=p[u],m=t?t(g):g;if(g=n||0!==g?g:0,!(f?Jt(f,m):o(h,m,n))){for(l=s;--l;){var v=c[l];if(!(v?Jt(v,m):o(e[l],m,n)))continue e}f&&f.push(m),h.push(g)}}return h}function Mi(e,t,n){var i=null==(e=Co(e,t=mr(t,e)))?e:e[Ho(Ko(t))];return null==i?r:St(i,e,n)}function Ai(e){return es(e)&&Si(e)==g}function Ti(e,t,n,i,o){return e===t||(null==e||null==t||!es(e)&&!es(t)?e!=e&&t!=t:function(e,t,n,i,o,a){var s=Ua(e),l=Ua(t),c=s?m:po(e),d=l?m:po(t),h=(c=c==g?E:c)==E,p=(d=d==g?E:d)==E,u=c==d;if(u&&Xa(e)){if(!Xa(t))return!1;s=!0,h=!1}if(u&&!h)return a||(a=new Xn),s||ls(e)?Zr(e,t,n,i,o,a):function(e,t,n,i,r,o,a){switch(n){case I:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case N:return!(e.byteLength!=t.byteLength||!o(new je(e),new je(t)));case v:case y:case S:return Ba(+e,+t);case _:return e.name==t.name&&e.message==t.message;case z:case M:return e==t+"";case w:var s=on;case k:var l=1&i;if(s||(s=ln),e.size!=t.size&&!l)return!1;var c=a.get(e);if(c)return c==t;i|=2,a.set(e,t);var d=Zr(s(e),s(t),i,r,o,a);return a.delete(e),d;case A:if(Hn)return Hn.call(e)==Hn.call(t)}return!1}(e,t,c,n,i,o,a);if(!(1&n)){var f=h&&Oe.call(e,"__wrapped__"),b=p&&Oe.call(t,"__wrapped__");if(f||b){var x=f?e.value():e,C=b?t.value():t;return a||(a=new Xn),o(x,C,n,i,a)}}return!!u&&(a||(a=new Xn),function(e,t,n,i,o,a){var s=1&n,l=eo(e),c=l.length;if(c!=eo(t).length&&!s)return!1;for(var d=c;d--;){var h=l[d];if(!(s?h in t:Oe.call(t,h)))return!1}var p=a.get(e),u=a.get(t);if(p&&u)return p==t&&u==e;var f=!0;a.set(e,t),a.set(t,e);for(var g=s;++d<c;){var m=e[h=l[d]],v=t[h];if(i)var y=s?i(v,m,h,t,e,a):i(m,v,h,e,t,a);if(!(y===r?m===v||o(m,v,n,i,a):y)){f=!1;break}g||(g="constructor"==h)}if(f&&!g){var _=e.constructor,b=t.constructor;_==b||!("constructor"in e)||!("constructor"in t)||"function"==typeof _&&_ instanceof _&&"function"==typeof b&&b instanceof b||(f=!1)}return a.delete(e),a.delete(t),f}(e,t,n,i,o,a))}(e,t,n,i,Ti,o))}function Ni(e,t,n,i){var o=n.length,a=o,s=!i;if(null==e)return!a;for(e=Ee(e);o--;){var l=n[o];if(s&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++o<a;){var c=(l=n[o])[0],d=e[c],h=l[1];if(s&&l[2]){if(d===r&&!(c in e))return!1}else{var p=new Xn;if(i)var u=i(d,h,c,e,t,p);if(!(u===r?Ti(h,d,3,i,p):u))return!1}}return!0}function Ii(e){return!(!Qa(e)||(t=e,Pe&&Pe in t))&&(Ya(e)?Be:ge).test(Ro(e));var t}function Oi(e){return"function"==typeof e?e:null==e?nl:"object"==typeof e?Ua(e)?Vi(e[0],e[1]):Ri(e):hl(e)}function Li(e){if(!xo(e))return gn(e);var t=[];for(var n in Ee(e))Oe.call(e,n)&&"constructor"!=n&&t.push(n);return t}function Pi(e,t){return e<t}function Hi(e,t){var n=-1,r=Ga(e)?i(e.length):[];return di(e,(function(e,i,o){r[++n]=t(e,i,o)})),r}function Ri(e){var t=so(e);return 1==t.length&&t[0][2]?So(t[0][0],t[0][1]):function(n){return n===e||Ni(n,e,t)}}function Vi(e,t){return yo(e)&&wo(t)?So(Ho(e),t):function(n){var i=Cs(n,e);return i===r&&i===t?zs(n,e):Ti(t,i,3)}}function Bi(e,t,n,i,o){e!==t&&mi(t,(function(a,s){if(o||(o=new Xn),Qa(a))!function(e,t,n,i,o,a,s){var l=zo(e,n),c=zo(t,n),d=s.get(c);if(d)Zn(e,n,d);else{var h=a?a(l,c,n+"",e,t,s):r,p=h===r;if(p){var u=Ua(c),f=!u&&Xa(c),g=!u&&!f&&ls(c);h=c,u||f||g?Ua(l)?h=l:qa(l)?h=zr(l):f?(p=!1,h=br(c,!0)):g?(p=!1,h=wr(c,!0)):h=[]:is(c)||ja(c)?(h=l,ja(l)?h=ms(l):Qa(l)&&!Ya(l)||(h=fo(c))):p=!1}p&&(s.set(c,h),o(h,c,i,a,s),s.delete(c)),Zn(e,n,h)}}(e,t,s,n,Bi,i,o);else{var l=i?i(zo(e,s),a,s+"",e,t,o):r;l===r&&(l=a),Zn(e,s,l)}}),Ns)}function Di(e,t){var n=e.length;if(n)return mo(t+=t<0?n:0,n)?e[t]:r}function Fi(e,t,n){t=t.length?Nt(t,(function(e){return Ua(e)?function(t){return xi(t,1===e.length?e[0]:e)}:e})):[nl];var i=-1;t=Nt(t,Kt(oo()));var r=Hi(e,(function(e,n,r){var o=Nt(t,(function(t){return t(e)}));return{criteria:o,index:++i,value:e}}));return function(e){var t=e.length;for(e.sort((function(e,t){return function(e,t,n){for(var i=-1,r=e.criteria,o=t.criteria,a=r.length,s=n.length;++i<a;){var l=Sr(r[i],o[i]);if(l)return i>=s?l:l*("desc"==n[i]?-1:1)}return e.index-t.index}(e,t,n)}));t--;)e[t]=e[t].value;return e}(r)}function ji(e,t,n){for(var i=-1,r=t.length,o={};++i<r;){var a=t[i],s=xi(e,a);n(s,a)&&Yi(o,mr(a,e),s)}return o}function Ui(e,t,n,i){var r=i?Dt:Bt,o=-1,a=t.length,s=e;for(e===t&&(t=zr(t)),n&&(s=Nt(e,Kt(n)));++o<a;)for(var l=0,c=t[o],d=n?n(c):c;(l=r(s,d,l,i))>-1;)s!==e&&Xe.call(s,l,1),Xe.call(e,l,1);return e}function $i(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==o){var o=r;mo(r)?Xe.call(e,r,1):lr(e,r)}}return e}function Gi(e,t){return e+ut(bn()*(t-e+1))}function qi(e,t){var n="";if(!e||t<1||t>h)return n;do{t%2&&(n+=e),(t=ut(t/2))&&(e+=e)}while(t);return n}function Xi(e,t){return Ao(Eo(e,t,nl),e+"")}function Wi(e){return Kn(Bs(e))}function Ki(e,t){var n=Bs(e);return Io(n,oi(t,0,n.length))}function Yi(e,t,n,i){if(!Qa(e))return e;for(var o=-1,a=(t=mr(t,e)).length,s=a-1,l=e;null!=l&&++o<a;){var c=Ho(t[o]),d=n;if("__proto__"===c||"constructor"===c||"prototype"===c)return e;if(o!=s){var h=l[c];(d=i?i(h,c,l):r)===r&&(d=Qa(h)?h:mo(t[o+1])?[]:{})}Qn(l,c,d),l=l[c]}return e}var Ji=Mn?function(e,t){return Mn.set(e,t),e}:nl,Zi=et?function(e,t){return et(e,"toString",{configurable:!0,enumerable:!1,value:Qs(t),writable:!0})}:nl;function Qi(e){return Io(Bs(e))}function er(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=i(o);++r<o;)a[r]=e[r+t];return a}function tr(e,t){var n;return di(e,(function(e,i,r){return!(n=t(e,i,r))})),!!n}function nr(e,t,n){var i=0,r=null==e?i:e.length;if("number"==typeof t&&t==t&&r<=2147483647){for(;i<r;){var o=i+r>>>1,a=e[o];null!==a&&!ss(a)&&(n?a<=t:a<t)?i=o+1:r=o}return r}return ir(e,t,nl,n)}function ir(e,t,n,i){var o=0,a=null==e?0:e.length;if(0===a)return 0;for(var s=(t=n(t))!=t,l=null===t,c=ss(t),d=t===r;o<a;){var h=ut((o+a)/2),p=n(e[h]),u=p!==r,f=null===p,g=p==p,m=ss(p);if(s)var v=i||g;else v=d?g&&(i||u):l?g&&u&&(i||!f):c?g&&u&&!f&&(i||!m):!f&&!m&&(i?p<=t:p<t);v?o=h+1:a=h}return vn(a,4294967294)}function rr(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n],s=t?t(a):a;if(!n||!Ba(s,l)){var l=s;o[r++]=0===a?0:a}}return o}function or(e){return"number"==typeof e?e:ss(e)?p:+e}function ar(e){if("string"==typeof e)return e;if(Ua(e))return Nt(e,ar)+"";if(ss(e))return Rn?Rn.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function sr(e,t,n){var i=-1,r=At,o=e.length,a=!0,s=[],l=s;if(n)a=!1,r=Tt;else if(o>=200){var c=t?null:qr(e);if(c)return ln(c);a=!1,r=Jt,l=new qn}else l=t?[]:s;e:for(;++i<o;){var d=e[i],h=t?t(d):d;if(d=n||0!==d?d:0,a&&h==h){for(var p=l.length;p--;)if(l[p]===h)continue e;t&&l.push(h),s.push(d)}else r(l,h,n)||(l!==s&&l.push(h),s.push(d))}return s}function lr(e,t){return null==(e=Co(e,t=mr(t,e)))||delete e[Ho(Ko(t))]}function cr(e,t,n,i){return Yi(e,t,n(xi(e,t)),i)}function dr(e,t,n,i){for(var r=e.length,o=i?r:-1;(i?o--:++o<r)&&t(e[o],o,e););return n?er(e,i?0:o,i?o+1:r):er(e,i?o+1:0,i?r:o)}function hr(e,t){var n=e;return n instanceof jn&&(n=n.value()),Ot(t,(function(e,t){return t.func.apply(t.thisArg,It([e],t.args))}),n)}function pr(e,t,n){var r=e.length;if(r<2)return r?sr(e[0]):[];for(var o=-1,a=i(r);++o<r;)for(var s=e[o],l=-1;++l<r;)l!=o&&(a[o]=ci(a[o]||s,e[l],t,n));return sr(gi(a,1),t,n)}function ur(e,t,n){for(var i=-1,o=e.length,a=t.length,s={};++i<o;){var l=i<a?t[i]:r;n(s,e[i],l)}return s}function fr(e){return qa(e)?e:[]}function gr(e){return"function"==typeof e?e:nl}function mr(e,t){return Ua(e)?e:yo(e,t)?[e]:Po(vs(e))}var vr=Xi;function yr(e,t,n){var i=e.length;return n=n===r?i:n,!t&&n>=i?e:er(e,t,n)}var _r=at||function(e){return ht.clearTimeout(e)};function br(e,t){if(t)return e.slice();var n=e.length,i=Ue?Ue(n):new e.constructor(n);return e.copy(i),i}function xr(e){var t=new e.constructor(e.byteLength);return new je(t).set(new je(e)),t}function wr(e,t){var n=t?xr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Sr(e,t){if(e!==t){var n=e!==r,i=null===e,o=e==e,a=ss(e),s=t!==r,l=null===t,c=t==t,d=ss(t);if(!l&&!d&&!a&&e>t||a&&s&&c&&!l&&!d||i&&s&&c||!n&&c||!o)return 1;if(!i&&!a&&!d&&e<t||d&&n&&o&&!i&&!a||l&&n&&o||!s&&o||!c)return-1}return 0}function Er(e,t,n,r){for(var o=-1,a=e.length,s=n.length,l=-1,c=t.length,d=mn(a-s,0),h=i(c+d),p=!r;++l<c;)h[l]=t[l];for(;++o<s;)(p||o<a)&&(h[n[o]]=e[o]);for(;d--;)h[l++]=e[o++];return h}function Cr(e,t,n,r){for(var o=-1,a=e.length,s=-1,l=n.length,c=-1,d=t.length,h=mn(a-l,0),p=i(h+d),u=!r;++o<h;)p[o]=e[o];for(var f=o;++c<d;)p[f+c]=t[c];for(;++s<l;)(u||o<a)&&(p[f+n[s]]=e[o++]);return p}function zr(e,t){var n=-1,r=e.length;for(t||(t=i(r));++n<r;)t[n]=e[n];return t}function kr(e,t,n,i){var o=!n;n||(n={});for(var a=-1,s=t.length;++a<s;){var l=t[a],c=i?i(n[l],e[l],l,n,e):r;c===r&&(c=e[l]),o?ii(n,l,c):Qn(n,l,c)}return n}function Mr(e,t){return function(n,i){var r=Ua(n)?Et:ti,o=t?t():{};return r(n,e,oo(i,2),o)}}function Ar(e){return Xi((function(t,n){var i=-1,o=n.length,a=o>1?n[o-1]:r,s=o>2?n[2]:r;for(a=e.length>3&&"function"==typeof a?(o--,a):r,s&&vo(n[0],n[1],s)&&(a=o<3?r:a,o=1),t=Ee(t);++i<o;){var l=n[i];l&&e(t,l,i,a)}return t}))}function Tr(e,t){return function(n,i){if(null==n)return n;if(!Ga(n))return e(n,i);for(var r=n.length,o=t?r:-1,a=Ee(n);(t?o--:++o<r)&&!1!==i(a[o],o,a););return n}}function Nr(e){return function(t,n,i){for(var r=-1,o=Ee(t),a=i(t),s=a.length;s--;){var l=a[e?s:++r];if(!1===n(o[l],l,o))break}return t}}function Ir(e){return function(t){var n=rn(t=vs(t))?hn(t):r,i=n?n[0]:t.charAt(0),o=n?yr(n,1).join(""):t.slice(1);return i[e]()+o}}function Or(e){return function(t){return Ot(Ys(js(t).replace(Ye,"")),e,"")}}function Lr(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=Bn(e.prototype),i=e.apply(n,t);return Qa(i)?i:n}}function Pr(e){return function(t,n,i){var o=Ee(t);if(!Ga(t)){var a=oo(n,3);t=Ts(t),n=function(e){return a(o[e],e,o)}}var s=e(t,n,i);return s>-1?o[a?t[s]:s]:r}}function Hr(e){return Qr((function(t){var n=t.length,i=n,a=Fn.prototype.thru;for(e&&t.reverse();i--;){var s=t[i];if("function"!=typeof s)throw new ke(o);if(a&&!l&&"wrapper"==io(s))var l=new Fn([],!0)}for(i=l?i:n;++i<n;){var c=io(s=t[i]),d="wrapper"==c?no(s):r;l=d&&_o(d[0])&&424==d[1]&&!d[4].length&&1==d[9]?l[io(d[0])].apply(l,d[3]):1==s.length&&_o(s)?l[c]():l.thru(s)}return function(){var e=arguments,i=e[0];if(l&&1==e.length&&Ua(i))return l.plant(i).value();for(var r=0,o=n?t[r].apply(this,e):i;++r<n;)o=t[r].call(this,o);return o}}))}function Rr(e,t,n,o,a,s,l,d,h,p){var u=t&c,f=1&t,g=2&t,m=24&t,v=512&t,y=g?r:Lr(e);return function c(){for(var _=arguments.length,b=i(_),x=_;x--;)b[x]=arguments[x];if(m)var w=ro(c),S=function(e,t){for(var n=e.length,i=0;n--;)e[n]===t&&++i;return i}(b,w);if(o&&(b=Er(b,o,a,m)),s&&(b=Cr(b,s,l,m)),_-=S,m&&_<p){var E=sn(b,w);return $r(e,t,Rr,c.placeholder,n,b,E,d,h,p-_)}var C=f?n:this,z=g?C[e]:e;return _=b.length,d?b=function(e,t){for(var n=e.length,i=vn(t.length,n),o=zr(e);i--;){var a=t[i];e[i]=mo(a,n)?o[a]:r}return e}(b,d):v&&_>1&&b.reverse(),u&&h<_&&(b.length=h),this&&this!==ht&&this instanceof c&&(z=y||Lr(z)),z.apply(C,b)}}function Vr(e,t){return function(n,i){return function(e,t,n,i){return yi(e,(function(e,r,o){t(i,n(e),r,o)})),i}(n,e,t(i),{})}}function Br(e,t){return function(n,i){var o;if(n===r&&i===r)return t;if(n!==r&&(o=n),i!==r){if(o===r)return i;"string"==typeof n||"string"==typeof i?(n=ar(n),i=ar(i)):(n=or(n),i=or(i)),o=e(n,i)}return o}}function Dr(e){return Qr((function(t){return t=Nt(t,Kt(oo())),Xi((function(n){var i=this;return e(t,(function(e){return St(e,i,n)}))}))}))}function Fr(e,t){var n=(t=t===r?" ":ar(t)).length;if(n<2)return n?qi(t,e):t;var i=qi(t,pt(e/dn(t)));return rn(t)?yr(hn(i),0,e).join(""):i.slice(0,e)}function jr(e){return function(t,n,o){return o&&"number"!=typeof o&&vo(t,n,o)&&(n=o=r),t=ps(t),n===r?(n=t,t=0):n=ps(n),function(e,t,n,r){for(var o=-1,a=mn(pt((t-e)/(n||1)),0),s=i(a);a--;)s[r?a:++o]=e,e+=n;return s}(t,n,o=o===r?t<n?1:-1:ps(o),e)}}function Ur(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=gs(t),n=gs(n)),e(t,n)}}function $r(e,t,n,i,o,a,s,c,d,h){var p=8&t;t|=p?l:64,4&(t&=~(p?64:l))||(t&=-4);var u=[e,t,o,p?a:r,p?s:r,p?r:a,p?r:s,c,d,h],f=n.apply(r,u);return _o(e)&&ko(f,u),f.placeholder=i,To(f,e,t)}function Gr(e){var t=Se[e];return function(e,n){if(e=gs(e),(n=null==n?0:vn(us(n),292))&&Ht(e)){var i=(vs(e)+"e").split("e");return+((i=(vs(t(i[0]+"e"+(+i[1]+n)))+"e").split("e"))[0]+"e"+(+i[1]-n))}return t(e)}}var qr=Cn&&1/ln(new Cn([,-0]))[1]==d?function(e){return new Cn(e)}:sl;function Xr(e){return function(t){var n=po(t);return n==w?on(t):n==k?cn(t):function(e,t){return Nt(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Wr(e,t,n,a,d,h,p,u){var f=2&t;if(!f&&"function"!=typeof e)throw new ke(o);var g=a?a.length:0;if(g||(t&=-97,a=d=r),p=p===r?p:mn(us(p),0),u=u===r?u:us(u),g-=d?d.length:0,64&t){var m=a,v=d;a=d=r}var y=f?r:no(e),_=[e,t,n,a,d,m,v,h,p,u];if(y&&function(e,t){var n=e[1],i=t[1],r=n|i,o=r<131,a=i==c&&8==n||i==c&&256==n&&e[7].length<=t[8]||384==i&&t[7].length<=t[8]&&8==n;if(!o&&!a)return e;1&i&&(e[2]=t[2],r|=1&n?0:4);var l=t[3];if(l){var d=e[3];e[3]=d?Er(d,l,t[4]):l,e[4]=d?sn(e[3],s):t[4]}(l=t[5])&&(d=e[5],e[5]=d?Cr(d,l,t[6]):l,e[6]=d?sn(e[5],s):t[6]),(l=t[7])&&(e[7]=l),i&c&&(e[8]=null==e[8]?t[8]:vn(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=r}(_,y),e=_[0],t=_[1],n=_[2],a=_[3],d=_[4],!(u=_[9]=_[9]===r?f?0:e.length:mn(_[9]-g,0))&&24&t&&(t&=-25),t&&1!=t)b=8==t||16==t?function(e,t,n){var o=Lr(e);return function a(){for(var s=arguments.length,l=i(s),c=s,d=ro(a);c--;)l[c]=arguments[c];var h=s<3&&l[0]!==d&&l[s-1]!==d?[]:sn(l,d);return(s-=h.length)<n?$r(e,t,Rr,a.placeholder,r,l,h,r,r,n-s):St(this&&this!==ht&&this instanceof a?o:e,this,l)}}(e,t,u):t!=l&&33!=t||d.length?Rr.apply(r,_):function(e,t,n,r){var o=1&t,a=Lr(e);return function t(){for(var s=-1,l=arguments.length,c=-1,d=r.length,h=i(d+l),p=this&&this!==ht&&this instanceof t?a:e;++c<d;)h[c]=r[c];for(;l--;)h[c++]=arguments[++s];return St(p,o?n:this,h)}}(e,t,n,a);else var b=function(e,t,n){var i=1&t,r=Lr(e);return function t(){return(this&&this!==ht&&this instanceof t?r:e).apply(i?n:this,arguments)}}(e,t,n);return To((y?Ji:ko)(b,_),e,t)}function Kr(e,t,n,i){return e===r||Ba(e,Te[n])&&!Oe.call(i,n)?t:e}function Yr(e,t,n,i,o,a){return Qa(e)&&Qa(t)&&(a.set(t,e),Bi(e,t,r,Yr,a),a.delete(t)),e}function Jr(e){return is(e)?r:e}function Zr(e,t,n,i,o,a){var s=1&n,l=e.length,c=t.length;if(l!=c&&!(s&&c>l))return!1;var d=a.get(e),h=a.get(t);if(d&&h)return d==t&&h==e;var p=-1,u=!0,f=2&n?new qn:r;for(a.set(e,t),a.set(t,e);++p<l;){var g=e[p],m=t[p];if(i)var v=s?i(m,g,p,t,e,a):i(g,m,p,e,t,a);if(v!==r){if(v)continue;u=!1;break}if(f){if(!Pt(t,(function(e,t){if(!Jt(f,t)&&(g===e||o(g,e,n,i,a)))return f.push(t)}))){u=!1;break}}else if(g!==m&&!o(g,m,n,i,a)){u=!1;break}}return a.delete(e),a.delete(t),u}function Qr(e){return Ao(Eo(e,r,$o),e+"")}function eo(e){return wi(e,Ts,co)}function to(e){return wi(e,Ns,ho)}var no=Mn?function(e){return Mn.get(e)}:sl;function io(e){for(var t=e.name+"",n=An[t],i=Oe.call(An,t)?n.length:0;i--;){var r=n[i],o=r.func;if(null==o||o==e)return r.name}return t}function ro(e){return(Oe.call(Vn,"placeholder")?Vn:e).placeholder}function oo(){var e=Vn.iteratee||il;return e=e===il?Oi:e,arguments.length?e(arguments[0],arguments[1]):e}function ao(e,t){var n,i,r=e.__data__;return("string"==(i=typeof(n=t))||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==n:null===n)?r["string"==typeof t?"string":"hash"]:r.map}function so(e){for(var t=Ts(e),n=t.length;n--;){var i=t[n],r=e[i];t[n]=[i,r,wo(r)]}return t}function lo(e,t){var n=function(e,t){return null==e?r:e[t]}(e,t);return Ii(n)?n:r}var co=gt?function(e){return null==e?[]:(e=Ee(e),Mt(gt(e),(function(t){return qe.call(e,t)})))}:fl,ho=gt?function(e){for(var t=[];e;)It(t,co(e)),e=$e(e);return t}:fl,po=Si;function uo(e,t,n){for(var i=-1,r=(t=mr(t,e)).length,o=!1;++i<r;){var a=Ho(t[i]);if(!(o=null!=e&&n(e,a)))break;e=e[a]}return o||++i!=r?o:!!(r=null==e?0:e.length)&&Za(r)&&mo(a,r)&&(Ua(e)||ja(e))}function fo(e){return"function"!=typeof e.constructor||xo(e)?{}:Bn($e(e))}function go(e){return Ua(e)||ja(e)||!!(We&&e&&e[We])}function mo(e,t){var n=typeof e;return!!(t=null==t?h:t)&&("number"==n||"symbol"!=n&&ve.test(e))&&e>-1&&e%1==0&&e<t}function vo(e,t,n){if(!Qa(n))return!1;var i=typeof t;return!!("number"==i?Ga(n)&&mo(t,n.length):"string"==i&&t in n)&&Ba(n[t],e)}function yo(e,t){if(Ua(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!ss(e))||Q.test(e)||!Z.test(e)||null!=t&&e in Ee(t)}function _o(e){var t=io(e),n=Vn[t];if("function"!=typeof n||!(t in jn.prototype))return!1;if(e===n)return!0;var i=no(n);return!!i&&e===i[0]}(wn&&po(new wn(new ArrayBuffer(1)))!=I||Sn&&po(new Sn)!=w||En&&po(En.resolve())!=C||Cn&&po(new Cn)!=k||zn&&po(new zn)!=T)&&(po=function(e){var t=Si(e),n=t==E?e.constructor:r,i=n?Ro(n):"";if(i)switch(i){case Tn:return I;case Nn:return w;case In:return C;case On:return k;case Ln:return T}return t});var bo=Ne?Ya:gl;function xo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Te)}function wo(e){return e==e&&!Qa(e)}function So(e,t){return function(n){return null!=n&&n[e]===t&&(t!==r||e in Ee(n))}}function Eo(e,t,n){return t=mn(t===r?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=mn(r.length-t,0),s=i(a);++o<a;)s[o]=r[t+o];o=-1;for(var l=i(t+1);++o<t;)l[o]=r[o];return l[t]=n(s),St(e,this,l)}}function Co(e,t){return t.length<2?e:xi(e,er(t,0,-1))}function zo(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var ko=No(Ji),Mo=dt||function(e,t){return ht.setTimeout(e,t)},Ao=No(Zi);function To(e,t,n){var i=t+"";return Ao(e,function(e,t){var n=t.length;if(!n)return e;var i=n-1;return t[i]=(n>1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(oe,"{\n/* [wrapped with "+t+"] */\n")}(i,function(e,t){return Ct(f,(function(n){var i="_."+n[0];t&n[1]&&!At(e,i)&&e.push(i)})),e.sort()}(function(e){var t=e.match(ae);return t?t[1].split(se):[]}(i),n)))}function No(e){var t=0,n=0;return function(){var i=yn(),o=16-(i-n);if(n=i,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(r,arguments)}}function Io(e,t){var n=-1,i=e.length,o=i-1;for(t=t===r?i:t;++n<t;){var a=Gi(n,o),s=e[a];e[a]=e[n],e[n]=s}return e.length=t,e}var Oo,Lo,Po=(Oo=Oa((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ee,(function(e,n,i,r){t.push(i?r.replace(de,"$1"):n||e)})),t}),(function(e){return 500===Lo.size&&Lo.clear(),e})),Lo=Oo.cache,Oo);function Ho(e){if("string"==typeof e||ss(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Ro(e){if(null!=e){try{return Ie.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Vo(e){if(e instanceof jn)return e.clone();var t=new Fn(e.__wrapped__,e.__chain__);return t.__actions__=zr(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var Bo=Xi((function(e,t){return qa(e)?ci(e,gi(t,1,qa,!0)):[]})),Do=Xi((function(e,t){var n=Ko(t);return qa(n)&&(n=r),qa(e)?ci(e,gi(t,1,qa,!0),oo(n,2)):[]})),Fo=Xi((function(e,t){var n=Ko(t);return qa(n)&&(n=r),qa(e)?ci(e,gi(t,1,qa,!0),r,n):[]}));function jo(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:us(n);return r<0&&(r=mn(i+r,0)),Vt(e,oo(t,3),r)}function Uo(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var o=i-1;return n!==r&&(o=us(n),o=n<0?mn(i+o,0):vn(o,i-1)),Vt(e,oo(t,3),o,!0)}function $o(e){return null!=e&&e.length?gi(e,1):[]}function Go(e){return e&&e.length?e[0]:r}var qo=Xi((function(e){var t=Nt(e,fr);return t.length&&t[0]===e[0]?ki(t):[]})),Xo=Xi((function(e){var t=Ko(e),n=Nt(e,fr);return t===Ko(n)?t=r:n.pop(),n.length&&n[0]===e[0]?ki(n,oo(t,2)):[]})),Wo=Xi((function(e){var t=Ko(e),n=Nt(e,fr);return(t="function"==typeof t?t:r)&&n.pop(),n.length&&n[0]===e[0]?ki(n,r,t):[]}));function Ko(e){var t=null==e?0:e.length;return t?e[t-1]:r}var Yo=Xi(Jo);function Jo(e,t){return e&&e.length&&t&&t.length?Ui(e,t):e}var Zo=Qr((function(e,t){var n=null==e?0:e.length,i=ri(e,t);return $i(e,Nt(t,(function(e){return mo(e,n)?+e:e})).sort(Sr)),i}));function Qo(e){return null==e?e:xn.call(e)}var ea=Xi((function(e){return sr(gi(e,1,qa,!0))})),ta=Xi((function(e){var t=Ko(e);return qa(t)&&(t=r),sr(gi(e,1,qa,!0),oo(t,2))})),na=Xi((function(e){var t=Ko(e);return t="function"==typeof t?t:r,sr(gi(e,1,qa,!0),r,t)}));function ia(e){if(!e||!e.length)return[];var t=0;return e=Mt(e,(function(e){if(qa(e))return t=mn(e.length,t),!0})),Xt(t,(function(t){return Nt(e,Ut(t))}))}function ra(e,t){if(!e||!e.length)return[];var n=ia(e);return null==t?n:Nt(n,(function(e){return St(t,r,e)}))}var oa=Xi((function(e,t){return qa(e)?ci(e,t):[]})),aa=Xi((function(e){return pr(Mt(e,qa))})),sa=Xi((function(e){var t=Ko(e);return qa(t)&&(t=r),pr(Mt(e,qa),oo(t,2))})),la=Xi((function(e){var t=Ko(e);return t="function"==typeof t?t:r,pr(Mt(e,qa),r,t)})),ca=Xi(ia),da=Xi((function(e){var t=e.length,n=t>1?e[t-1]:r;return n="function"==typeof n?(e.pop(),n):r,ra(e,n)}));function ha(e){var t=Vn(e);return t.__chain__=!0,t}function pa(e,t){return t(e)}var ua=Qr((function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,o=function(t){return ri(t,e)};return!(t>1||this.__actions__.length)&&i instanceof jn&&mo(n)?((i=i.slice(n,+n+(t?1:0))).__actions__.push({func:pa,args:[o],thisArg:r}),new Fn(i,this.__chain__).thru((function(e){return t&&!e.length&&e.push(r),e}))):this.thru(o)})),fa=Mr((function(e,t,n){Oe.call(e,n)?++e[n]:ii(e,n,1)})),ga=Pr(jo),ma=Pr(Uo);function va(e,t){return(Ua(e)?Ct:di)(e,oo(t,3))}function ya(e,t){return(Ua(e)?zt:hi)(e,oo(t,3))}var _a=Mr((function(e,t,n){Oe.call(e,n)?e[n].push(t):ii(e,n,[t])})),ba=Xi((function(e,t,n){var r=-1,o="function"==typeof t,a=Ga(e)?i(e.length):[];return di(e,(function(e){a[++r]=o?St(t,e,n):Mi(e,t,n)})),a})),xa=Mr((function(e,t,n){ii(e,n,t)}));function wa(e,t){return(Ua(e)?Nt:Hi)(e,oo(t,3))}var Sa=Mr((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]})),Ea=Xi((function(e,t){if(null==e)return[];var n=t.length;return n>1&&vo(e,t[0],t[1])?t=[]:n>2&&vo(t[0],t[1],t[2])&&(t=[t[0]]),Fi(e,gi(t,1),[])})),Ca=ct||function(){return ht.Date.now()};function za(e,t,n){return t=n?r:t,t=e&&null==t?e.length:t,Wr(e,c,r,r,r,r,t)}function ka(e,t){var n;if("function"!=typeof t)throw new ke(o);return e=us(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=r),n}}var Ma=Xi((function(e,t,n){var i=1;if(n.length){var r=sn(n,ro(Ma));i|=l}return Wr(e,i,t,n,r)})),Aa=Xi((function(e,t,n){var i=3;if(n.length){var r=sn(n,ro(Aa));i|=l}return Wr(t,i,e,n,r)}));function Ta(e,t,n){var i,a,s,l,c,d,h=0,p=!1,u=!1,f=!0;if("function"!=typeof e)throw new ke(o);function g(t){var n=i,o=a;return i=a=r,h=t,l=e.apply(o,n)}function m(e){var n=e-d;return d===r||n>=t||n<0||u&&e-h>=s}function v(){var e=Ca();if(m(e))return y(e);c=Mo(v,function(e){var n=t-(e-d);return u?vn(n,s-(e-h)):n}(e))}function y(e){return c=r,f&&i?g(e):(i=a=r,l)}function _(){var e=Ca(),n=m(e);if(i=arguments,a=this,d=e,n){if(c===r)return function(e){return h=e,c=Mo(v,t),p?g(e):l}(d);if(u)return _r(c),c=Mo(v,t),g(d)}return c===r&&(c=Mo(v,t)),l}return t=gs(t)||0,Qa(n)&&(p=!!n.leading,s=(u="maxWait"in n)?mn(gs(n.maxWait)||0,t):s,f="trailing"in n?!!n.trailing:f),_.cancel=function(){c!==r&&_r(c),h=0,i=d=a=c=r},_.flush=function(){return c===r?l:y(Ca())},_}var Na=Xi((function(e,t){return li(e,1,t)})),Ia=Xi((function(e,t,n){return li(e,gs(t)||0,n)}));function Oa(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new ke(o);var n=function(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(Oa.Cache||Gn),n}function La(e){if("function"!=typeof e)throw new ke(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Oa.Cache=Gn;var Pa=vr((function(e,t){var n=(t=1==t.length&&Ua(t[0])?Nt(t[0],Kt(oo())):Nt(gi(t,1),Kt(oo()))).length;return Xi((function(i){for(var r=-1,o=vn(i.length,n);++r<o;)i[r]=t[r].call(this,i[r]);return St(e,this,i)}))})),Ha=Xi((function(e,t){var n=sn(t,ro(Ha));return Wr(e,l,r,t,n)})),Ra=Xi((function(e,t){var n=sn(t,ro(Ra));return Wr(e,64,r,t,n)})),Va=Qr((function(e,t){return Wr(e,256,r,r,r,t)}));function Ba(e,t){return e===t||e!=e&&t!=t}var Da=Ur(Ei),Fa=Ur((function(e,t){return e>=t})),ja=Ai(function(){return arguments}())?Ai:function(e){return es(e)&&Oe.call(e,"callee")&&!qe.call(e,"callee")},Ua=i.isArray,$a=vt?Kt(vt):function(e){return es(e)&&Si(e)==N};function Ga(e){return null!=e&&Za(e.length)&&!Ya(e)}function qa(e){return es(e)&&Ga(e)}var Xa=mt||gl,Wa=yt?Kt(yt):function(e){return es(e)&&Si(e)==y};function Ka(e){if(!es(e))return!1;var t=Si(e);return t==_||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!is(e)}function Ya(e){if(!Qa(e))return!1;var t=Si(e);return t==b||t==x||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Ja(e){return"number"==typeof e&&e==us(e)}function Za(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=h}function Qa(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function es(e){return null!=e&&"object"==typeof e}var ts=_t?Kt(_t):function(e){return es(e)&&po(e)==w};function ns(e){return"number"==typeof e||es(e)&&Si(e)==S}function is(e){if(!es(e)||Si(e)!=E)return!1;var t=$e(e);if(null===t)return!0;var n=Oe.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Ie.call(n)==Re}var rs=bt?Kt(bt):function(e){return es(e)&&Si(e)==z},os=xt?Kt(xt):function(e){return es(e)&&po(e)==k};function as(e){return"string"==typeof e||!Ua(e)&&es(e)&&Si(e)==M}function ss(e){return"symbol"==typeof e||es(e)&&Si(e)==A}var ls=wt?Kt(wt):function(e){return es(e)&&Za(e.length)&&!!rt[Si(e)]},cs=Ur(Pi),ds=Ur((function(e,t){return e<=t}));function hs(e){if(!e)return[];if(Ga(e))return as(e)?hn(e):zr(e);if(Ke&&e[Ke])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Ke]());var t=po(e);return(t==w?on:t==k?ln:Bs)(e)}function ps(e){return e?(e=gs(e))===d||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function us(e){var t=ps(e),n=t%1;return t==t?n?t-n:t:0}function fs(e){return e?oi(us(e),0,u):0}function gs(e){if("number"==typeof e)return e;if(ss(e))return p;if(Qa(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Qa(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Wt(e);var n=fe.test(e);return n||me.test(e)?lt(e.slice(2),n?2:8):ue.test(e)?p:+e}function ms(e){return kr(e,Ns(e))}function vs(e){return null==e?"":ar(e)}var ys=Ar((function(e,t){if(xo(t)||Ga(t))kr(t,Ts(t),e);else for(var n in t)Oe.call(t,n)&&Qn(e,n,t[n])})),_s=Ar((function(e,t){kr(t,Ns(t),e)})),bs=Ar((function(e,t,n,i){kr(t,Ns(t),e,i)})),xs=Ar((function(e,t,n,i){kr(t,Ts(t),e,i)})),ws=Qr(ri),Ss=Xi((function(e,t){e=Ee(e);var n=-1,i=t.length,o=i>2?t[2]:r;for(o&&vo(t[0],t[1],o)&&(i=1);++n<i;)for(var a=t[n],s=Ns(a),l=-1,c=s.length;++l<c;){var d=s[l],h=e[d];(h===r||Ba(h,Te[d])&&!Oe.call(e,d))&&(e[d]=a[d])}return e})),Es=Xi((function(e){return e.push(r,Yr),St(Os,r,e)}));function Cs(e,t,n){var i=null==e?r:xi(e,t);return i===r?n:i}function zs(e,t){return null!=e&&uo(e,t,zi)}var ks=Vr((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=He.call(t)),e[t]=n}),Qs(nl)),Ms=Vr((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=He.call(t)),Oe.call(e,t)?e[t].push(n):e[t]=[n]}),oo),As=Xi(Mi);function Ts(e){return Ga(e)?Wn(e):Li(e)}function Ns(e){return Ga(e)?Wn(e,!0):function(e){if(!Qa(e))return function(e){var t=[];if(null!=e)for(var n in Ee(e))t.push(n);return t}(e);var t=xo(e),n=[];for(var i in e)("constructor"!=i||!t&&Oe.call(e,i))&&n.push(i);return n}(e)}var Is=Ar((function(e,t,n){Bi(e,t,n)})),Os=Ar((function(e,t,n,i){Bi(e,t,n,i)})),Ls=Qr((function(e,t){var n={};if(null==e)return n;var i=!1;t=Nt(t,(function(t){return t=mr(t,e),i||(i=t.length>1),t})),kr(e,to(e),n),i&&(n=ai(n,7,Jr));for(var r=t.length;r--;)lr(n,t[r]);return n})),Ps=Qr((function(e,t){return null==e?{}:function(e,t){return ji(e,t,(function(t,n){return zs(e,n)}))}(e,t)}));function Hs(e,t){if(null==e)return{};var n=Nt(to(e),(function(e){return[e]}));return t=oo(t),ji(e,n,(function(e,n){return t(e,n[0])}))}var Rs=Xr(Ts),Vs=Xr(Ns);function Bs(e){return null==e?[]:Yt(e,Ts(e))}var Ds=Or((function(e,t,n){return t=t.toLowerCase(),e+(n?Fs(t):t)}));function Fs(e){return Ks(vs(e).toLowerCase())}function js(e){return(e=vs(e))&&e.replace(ye,en).replace(Je,"")}var Us=Or((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),$s=Or((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Gs=Ir("toLowerCase"),qs=Or((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()})),Xs=Or((function(e,t,n){return e+(n?" ":"")+Ks(t)})),Ws=Or((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Ks=Ir("toUpperCase");function Ys(e,t,n){return e=vs(e),(t=n?r:t)===r?function(e){return tt.test(e)}(e)?function(e){return e.match(Qe)||[]}(e):function(e){return e.match(le)||[]}(e):e.match(t)||[]}var Js=Xi((function(e,t){try{return St(e,r,t)}catch(e){return Ka(e)?e:new xe(e)}})),Zs=Qr((function(e,t){return Ct(t,(function(t){t=Ho(t),ii(e,t,Ma(e[t],e))})),e}));function Qs(e){return function(){return e}}var el=Hr(),tl=Hr(!0);function nl(e){return e}function il(e){return Oi("function"==typeof e?e:ai(e,1))}var rl=Xi((function(e,t){return function(n){return Mi(n,e,t)}})),ol=Xi((function(e,t){return function(n){return Mi(e,n,t)}}));function al(e,t,n){var i=Ts(t),r=bi(t,i);null!=n||Qa(t)&&(r.length||!i.length)||(n=t,t=e,e=this,r=bi(t,Ts(t)));var o=!(Qa(n)&&"chain"in n&&!n.chain),a=Ya(e);return Ct(r,(function(n){var i=t[n];e[n]=i,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=zr(this.__actions__)).push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,It([this.value()],arguments))})})),e}function sl(){}var ll=Dr(Nt),cl=Dr(kt),dl=Dr(Pt);function hl(e){return yo(e)?Ut(Ho(e)):function(e){return function(t){return xi(t,e)}}(e)}var pl=jr(),ul=jr(!0);function fl(){return[]}function gl(){return!1}var ml,vl=Br((function(e,t){return e+t}),0),yl=Gr("ceil"),_l=Br((function(e,t){return e/t}),1),bl=Gr("floor"),xl=Br((function(e,t){return e*t}),1),wl=Gr("round"),Sl=Br((function(e,t){return e-t}),0);return Vn.after=function(e,t){if("function"!=typeof t)throw new ke(o);return e=us(e),function(){if(--e<1)return t.apply(this,arguments)}},Vn.ary=za,Vn.assign=ys,Vn.assignIn=_s,Vn.assignInWith=bs,Vn.assignWith=xs,Vn.at=ws,Vn.before=ka,Vn.bind=Ma,Vn.bindAll=Zs,Vn.bindKey=Aa,Vn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Ua(e)?e:[e]},Vn.chain=ha,Vn.chunk=function(e,t,n){t=(n?vo(e,t,n):t===r)?1:mn(us(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var a=0,s=0,l=i(pt(o/t));a<o;)l[s++]=er(e,a,a+=t);return l},Vn.compact=function(e){for(var t=-1,n=null==e?0:e.length,i=0,r=[];++t<n;){var o=e[t];o&&(r[i++]=o)}return r},Vn.concat=function(){var e=arguments.length;if(!e)return[];for(var t=i(e-1),n=arguments[0],r=e;r--;)t[r-1]=arguments[r];return It(Ua(n)?zr(n):[n],gi(t,1))},Vn.cond=function(e){var t=null==e?0:e.length,n=oo();return e=t?Nt(e,(function(e){if("function"!=typeof e[1])throw new ke(o);return[n(e[0]),e[1]]})):[],Xi((function(n){for(var i=-1;++i<t;){var r=e[i];if(St(r[0],this,n))return St(r[1],this,n)}}))},Vn.conforms=function(e){return function(e){var t=Ts(e);return function(n){return si(n,e,t)}}(ai(e,1))},Vn.constant=Qs,Vn.countBy=fa,Vn.create=function(e,t){var n=Bn(e);return null==t?n:ni(n,t)},Vn.curry=function e(t,n,i){var o=Wr(t,8,r,r,r,r,r,n=i?r:n);return o.placeholder=e.placeholder,o},Vn.curryRight=function e(t,n,i){var o=Wr(t,16,r,r,r,r,r,n=i?r:n);return o.placeholder=e.placeholder,o},Vn.debounce=Ta,Vn.defaults=Ss,Vn.defaultsDeep=Es,Vn.defer=Na,Vn.delay=Ia,Vn.difference=Bo,Vn.differenceBy=Do,Vn.differenceWith=Fo,Vn.drop=function(e,t,n){var i=null==e?0:e.length;return i?er(e,(t=n||t===r?1:us(t))<0?0:t,i):[]},Vn.dropRight=function(e,t,n){var i=null==e?0:e.length;return i?er(e,0,(t=i-(t=n||t===r?1:us(t)))<0?0:t):[]},Vn.dropRightWhile=function(e,t){return e&&e.length?dr(e,oo(t,3),!0,!0):[]},Vn.dropWhile=function(e,t){return e&&e.length?dr(e,oo(t,3),!0):[]},Vn.fill=function(e,t,n,i){var o=null==e?0:e.length;return o?(n&&"number"!=typeof n&&vo(e,t,n)&&(n=0,i=o),function(e,t,n,i){var o=e.length;for((n=us(n))<0&&(n=-n>o?0:o+n),(i=i===r||i>o?o:us(i))<0&&(i+=o),i=n>i?0:fs(i);n<i;)e[n++]=t;return e}(e,t,n,i)):[]},Vn.filter=function(e,t){return(Ua(e)?Mt:fi)(e,oo(t,3))},Vn.flatMap=function(e,t){return gi(wa(e,t),1)},Vn.flatMapDeep=function(e,t){return gi(wa(e,t),d)},Vn.flatMapDepth=function(e,t,n){return n=n===r?1:us(n),gi(wa(e,t),n)},Vn.flatten=$o,Vn.flattenDeep=function(e){return null!=e&&e.length?gi(e,d):[]},Vn.flattenDepth=function(e,t){return null!=e&&e.length?gi(e,t=t===r?1:us(t)):[]},Vn.flip=function(e){return Wr(e,512)},Vn.flow=el,Vn.flowRight=tl,Vn.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,i={};++t<n;){var r=e[t];i[r[0]]=r[1]}return i},Vn.functions=function(e){return null==e?[]:bi(e,Ts(e))},Vn.functionsIn=function(e){return null==e?[]:bi(e,Ns(e))},Vn.groupBy=_a,Vn.initial=function(e){return null!=e&&e.length?er(e,0,-1):[]},Vn.intersection=qo,Vn.intersectionBy=Xo,Vn.intersectionWith=Wo,Vn.invert=ks,Vn.invertBy=Ms,Vn.invokeMap=ba,Vn.iteratee=il,Vn.keyBy=xa,Vn.keys=Ts,Vn.keysIn=Ns,Vn.map=wa,Vn.mapKeys=function(e,t){var n={};return t=oo(t,3),yi(e,(function(e,i,r){ii(n,t(e,i,r),e)})),n},Vn.mapValues=function(e,t){var n={};return t=oo(t,3),yi(e,(function(e,i,r){ii(n,i,t(e,i,r))})),n},Vn.matches=function(e){return Ri(ai(e,1))},Vn.matchesProperty=function(e,t){return Vi(e,ai(t,1))},Vn.memoize=Oa,Vn.merge=Is,Vn.mergeWith=Os,Vn.method=rl,Vn.methodOf=ol,Vn.mixin=al,Vn.negate=La,Vn.nthArg=function(e){return e=us(e),Xi((function(t){return Di(t,e)}))},Vn.omit=Ls,Vn.omitBy=function(e,t){return Hs(e,La(oo(t)))},Vn.once=function(e){return ka(2,e)},Vn.orderBy=function(e,t,n,i){return null==e?[]:(Ua(t)||(t=null==t?[]:[t]),Ua(n=i?r:n)||(n=null==n?[]:[n]),Fi(e,t,n))},Vn.over=ll,Vn.overArgs=Pa,Vn.overEvery=cl,Vn.overSome=dl,Vn.partial=Ha,Vn.partialRight=Ra,Vn.partition=Sa,Vn.pick=Ps,Vn.pickBy=Hs,Vn.property=hl,Vn.propertyOf=function(e){return function(t){return null==e?r:xi(e,t)}},Vn.pull=Yo,Vn.pullAll=Jo,Vn.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?Ui(e,t,oo(n,2)):e},Vn.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?Ui(e,t,r,n):e},Vn.pullAt=Zo,Vn.range=pl,Vn.rangeRight=ul,Vn.rearg=Va,Vn.reject=function(e,t){return(Ua(e)?Mt:fi)(e,La(oo(t,3)))},Vn.remove=function(e,t){var n=[];if(!e||!e.length)return n;var i=-1,r=[],o=e.length;for(t=oo(t,3);++i<o;){var a=e[i];t(a,i,e)&&(n.push(a),r.push(i))}return $i(e,r),n},Vn.rest=function(e,t){if("function"!=typeof e)throw new ke(o);return Xi(e,t=t===r?t:us(t))},Vn.reverse=Qo,Vn.sampleSize=function(e,t,n){return t=(n?vo(e,t,n):t===r)?1:us(t),(Ua(e)?Yn:Ki)(e,t)},Vn.set=function(e,t,n){return null==e?e:Yi(e,t,n)},Vn.setWith=function(e,t,n,i){return i="function"==typeof i?i:r,null==e?e:Yi(e,t,n,i)},Vn.shuffle=function(e){return(Ua(e)?Jn:Qi)(e)},Vn.slice=function(e,t,n){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&vo(e,t,n)?(t=0,n=i):(t=null==t?0:us(t),n=n===r?i:us(n)),er(e,t,n)):[]},Vn.sortBy=Ea,Vn.sortedUniq=function(e){return e&&e.length?rr(e):[]},Vn.sortedUniqBy=function(e,t){return e&&e.length?rr(e,oo(t,2)):[]},Vn.split=function(e,t,n){return n&&"number"!=typeof n&&vo(e,t,n)&&(t=n=r),(n=n===r?u:n>>>0)?(e=vs(e))&&("string"==typeof t||null!=t&&!rs(t))&&!(t=ar(t))&&rn(e)?yr(hn(e),0,n):e.split(t,n):[]},Vn.spread=function(e,t){if("function"!=typeof e)throw new ke(o);return t=null==t?0:mn(us(t),0),Xi((function(n){var i=n[t],r=yr(n,0,t);return i&&It(r,i),St(e,this,r)}))},Vn.tail=function(e){var t=null==e?0:e.length;return t?er(e,1,t):[]},Vn.take=function(e,t,n){return e&&e.length?er(e,0,(t=n||t===r?1:us(t))<0?0:t):[]},Vn.takeRight=function(e,t,n){var i=null==e?0:e.length;return i?er(e,(t=i-(t=n||t===r?1:us(t)))<0?0:t,i):[]},Vn.takeRightWhile=function(e,t){return e&&e.length?dr(e,oo(t,3),!1,!0):[]},Vn.takeWhile=function(e,t){return e&&e.length?dr(e,oo(t,3)):[]},Vn.tap=function(e,t){return t(e),e},Vn.throttle=function(e,t,n){var i=!0,r=!0;if("function"!=typeof e)throw new ke(o);return Qa(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),Ta(e,t,{leading:i,maxWait:t,trailing:r})},Vn.thru=pa,Vn.toArray=hs,Vn.toPairs=Rs,Vn.toPairsIn=Vs,Vn.toPath=function(e){return Ua(e)?Nt(e,Ho):ss(e)?[e]:zr(Po(vs(e)))},Vn.toPlainObject=ms,Vn.transform=function(e,t,n){var i=Ua(e),r=i||Xa(e)||ls(e);if(t=oo(t,4),null==n){var o=e&&e.constructor;n=r?i?new o:[]:Qa(e)&&Ya(o)?Bn($e(e)):{}}return(r?Ct:yi)(e,(function(e,i,r){return t(n,e,i,r)})),n},Vn.unary=function(e){return za(e,1)},Vn.union=ea,Vn.unionBy=ta,Vn.unionWith=na,Vn.uniq=function(e){return e&&e.length?sr(e):[]},Vn.uniqBy=function(e,t){return e&&e.length?sr(e,oo(t,2)):[]},Vn.uniqWith=function(e,t){return t="function"==typeof t?t:r,e&&e.length?sr(e,r,t):[]},Vn.unset=function(e,t){return null==e||lr(e,t)},Vn.unzip=ia,Vn.unzipWith=ra,Vn.update=function(e,t,n){return null==e?e:cr(e,t,gr(n))},Vn.updateWith=function(e,t,n,i){return i="function"==typeof i?i:r,null==e?e:cr(e,t,gr(n),i)},Vn.values=Bs,Vn.valuesIn=function(e){return null==e?[]:Yt(e,Ns(e))},Vn.without=oa,Vn.words=Ys,Vn.wrap=function(e,t){return Ha(gr(t),e)},Vn.xor=aa,Vn.xorBy=sa,Vn.xorWith=la,Vn.zip=ca,Vn.zipObject=function(e,t){return ur(e||[],t||[],Qn)},Vn.zipObjectDeep=function(e,t){return ur(e||[],t||[],Yi)},Vn.zipWith=da,Vn.entries=Rs,Vn.entriesIn=Vs,Vn.extend=_s,Vn.extendWith=bs,al(Vn,Vn),Vn.add=vl,Vn.attempt=Js,Vn.camelCase=Ds,Vn.capitalize=Fs,Vn.ceil=yl,Vn.clamp=function(e,t,n){return n===r&&(n=t,t=r),n!==r&&(n=(n=gs(n))==n?n:0),t!==r&&(t=(t=gs(t))==t?t:0),oi(gs(e),t,n)},Vn.clone=function(e){return ai(e,4)},Vn.cloneDeep=function(e){return ai(e,5)},Vn.cloneDeepWith=function(e,t){return ai(e,5,t="function"==typeof t?t:r)},Vn.cloneWith=function(e,t){return ai(e,4,t="function"==typeof t?t:r)},Vn.conformsTo=function(e,t){return null==t||si(e,t,Ts(t))},Vn.deburr=js,Vn.defaultTo=function(e,t){return null==e||e!=e?t:e},Vn.divide=_l,Vn.endsWith=function(e,t,n){e=vs(e),t=ar(t);var i=e.length,o=n=n===r?i:oi(us(n),0,i);return(n-=t.length)>=0&&e.slice(n,o)==t},Vn.eq=Ba,Vn.escape=function(e){return(e=vs(e))&&W.test(e)?e.replace(q,tn):e},Vn.escapeRegExp=function(e){return(e=vs(e))&&ne.test(e)?e.replace(te,"\\$&"):e},Vn.every=function(e,t,n){var i=Ua(e)?kt:pi;return n&&vo(e,t,n)&&(t=r),i(e,oo(t,3))},Vn.find=ga,Vn.findIndex=jo,Vn.findKey=function(e,t){return Rt(e,oo(t,3),yi)},Vn.findLast=ma,Vn.findLastIndex=Uo,Vn.findLastKey=function(e,t){return Rt(e,oo(t,3),_i)},Vn.floor=bl,Vn.forEach=va,Vn.forEachRight=ya,Vn.forIn=function(e,t){return null==e?e:mi(e,oo(t,3),Ns)},Vn.forInRight=function(e,t){return null==e?e:vi(e,oo(t,3),Ns)},Vn.forOwn=function(e,t){return e&&yi(e,oo(t,3))},Vn.forOwnRight=function(e,t){return e&&_i(e,oo(t,3))},Vn.get=Cs,Vn.gt=Da,Vn.gte=Fa,Vn.has=function(e,t){return null!=e&&uo(e,t,Ci)},Vn.hasIn=zs,Vn.head=Go,Vn.identity=nl,Vn.includes=function(e,t,n,i){e=Ga(e)?e:Bs(e),n=n&&!i?us(n):0;var r=e.length;return n<0&&(n=mn(r+n,0)),as(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&Bt(e,t,n)>-1},Vn.indexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:us(n);return r<0&&(r=mn(i+r,0)),Bt(e,t,r)},Vn.inRange=function(e,t,n){return t=ps(t),n===r?(n=t,t=0):n=ps(n),function(e,t,n){return e>=vn(t,n)&&e<mn(t,n)}(e=gs(e),t,n)},Vn.invoke=As,Vn.isArguments=ja,Vn.isArray=Ua,Vn.isArrayBuffer=$a,Vn.isArrayLike=Ga,Vn.isArrayLikeObject=qa,Vn.isBoolean=function(e){return!0===e||!1===e||es(e)&&Si(e)==v},Vn.isBuffer=Xa,Vn.isDate=Wa,Vn.isElement=function(e){return es(e)&&1===e.nodeType&&!is(e)},Vn.isEmpty=function(e){if(null==e)return!0;if(Ga(e)&&(Ua(e)||"string"==typeof e||"function"==typeof e.splice||Xa(e)||ls(e)||ja(e)))return!e.length;var t=po(e);if(t==w||t==k)return!e.size;if(xo(e))return!Li(e).length;for(var n in e)if(Oe.call(e,n))return!1;return!0},Vn.isEqual=function(e,t){return Ti(e,t)},Vn.isEqualWith=function(e,t,n){var i=(n="function"==typeof n?n:r)?n(e,t):r;return i===r?Ti(e,t,r,n):!!i},Vn.isError=Ka,Vn.isFinite=function(e){return"number"==typeof e&&Ht(e)},Vn.isFunction=Ya,Vn.isInteger=Ja,Vn.isLength=Za,Vn.isMap=ts,Vn.isMatch=function(e,t){return e===t||Ni(e,t,so(t))},Vn.isMatchWith=function(e,t,n){return n="function"==typeof n?n:r,Ni(e,t,so(t),n)},Vn.isNaN=function(e){return ns(e)&&e!=+e},Vn.isNative=function(e){if(bo(e))throw new xe("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Ii(e)},Vn.isNil=function(e){return null==e},Vn.isNull=function(e){return null===e},Vn.isNumber=ns,Vn.isObject=Qa,Vn.isObjectLike=es,Vn.isPlainObject=is,Vn.isRegExp=rs,Vn.isSafeInteger=function(e){return Ja(e)&&e>=-9007199254740991&&e<=h},Vn.isSet=os,Vn.isString=as,Vn.isSymbol=ss,Vn.isTypedArray=ls,Vn.isUndefined=function(e){return e===r},Vn.isWeakMap=function(e){return es(e)&&po(e)==T},Vn.isWeakSet=function(e){return es(e)&&"[object WeakSet]"==Si(e)},Vn.join=function(e,t){return null==e?"":$t.call(e,t)},Vn.kebabCase=Us,Vn.last=Ko,Vn.lastIndexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var o=i;return n!==r&&(o=(o=us(n))<0?mn(i+o,0):vn(o,i-1)),t==t?function(e,t,n){for(var i=n+1;i--;)if(e[i]===t)return i;return i}(e,t,o):Vt(e,Ft,o,!0)},Vn.lowerCase=$s,Vn.lowerFirst=Gs,Vn.lt=cs,Vn.lte=ds,Vn.max=function(e){return e&&e.length?ui(e,nl,Ei):r},Vn.maxBy=function(e,t){return e&&e.length?ui(e,oo(t,2),Ei):r},Vn.mean=function(e){return jt(e,nl)},Vn.meanBy=function(e,t){return jt(e,oo(t,2))},Vn.min=function(e){return e&&e.length?ui(e,nl,Pi):r},Vn.minBy=function(e,t){return e&&e.length?ui(e,oo(t,2),Pi):r},Vn.stubArray=fl,Vn.stubFalse=gl,Vn.stubObject=function(){return{}},Vn.stubString=function(){return""},Vn.stubTrue=function(){return!0},Vn.multiply=xl,Vn.nth=function(e,t){return e&&e.length?Di(e,us(t)):r},Vn.noConflict=function(){return ht._===this&&(ht._=Ve),this},Vn.noop=sl,Vn.now=Ca,Vn.pad=function(e,t,n){e=vs(e);var i=(t=us(t))?dn(e):0;if(!t||i>=t)return e;var r=(t-i)/2;return Fr(ut(r),n)+e+Fr(pt(r),n)},Vn.padEnd=function(e,t,n){e=vs(e);var i=(t=us(t))?dn(e):0;return t&&i<t?e+Fr(t-i,n):e},Vn.padStart=function(e,t,n){e=vs(e);var i=(t=us(t))?dn(e):0;return t&&i<t?Fr(t-i,n)+e:e},Vn.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),_n(vs(e).replace(ie,""),t||0)},Vn.random=function(e,t,n){if(n&&"boolean"!=typeof n&&vo(e,t,n)&&(t=n=r),n===r&&("boolean"==typeof t?(n=t,t=r):"boolean"==typeof e&&(n=e,e=r)),e===r&&t===r?(e=0,t=1):(e=ps(e),t===r?(t=e,e=0):t=ps(t)),e>t){var i=e;e=t,t=i}if(n||e%1||t%1){var o=bn();return vn(e+o*(t-e+st("1e-"+((o+"").length-1))),t)}return Gi(e,t)},Vn.reduce=function(e,t,n){var i=Ua(e)?Ot:Gt,r=arguments.length<3;return i(e,oo(t,4),n,r,di)},Vn.reduceRight=function(e,t,n){var i=Ua(e)?Lt:Gt,r=arguments.length<3;return i(e,oo(t,4),n,r,hi)},Vn.repeat=function(e,t,n){return t=(n?vo(e,t,n):t===r)?1:us(t),qi(vs(e),t)},Vn.replace=function(){var e=arguments,t=vs(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Vn.result=function(e,t,n){var i=-1,o=(t=mr(t,e)).length;for(o||(o=1,e=r);++i<o;){var a=null==e?r:e[Ho(t[i])];a===r&&(i=o,a=n),e=Ya(a)?a.call(e):a}return e},Vn.round=wl,Vn.runInContext=e,Vn.sample=function(e){return(Ua(e)?Kn:Wi)(e)},Vn.size=function(e){if(null==e)return 0;if(Ga(e))return as(e)?dn(e):e.length;var t=po(e);return t==w||t==k?e.size:Li(e).length},Vn.snakeCase=qs,Vn.some=function(e,t,n){var i=Ua(e)?Pt:tr;return n&&vo(e,t,n)&&(t=r),i(e,oo(t,3))},Vn.sortedIndex=function(e,t){return nr(e,t)},Vn.sortedIndexBy=function(e,t,n){return ir(e,t,oo(n,2))},Vn.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var i=nr(e,t);if(i<n&&Ba(e[i],t))return i}return-1},Vn.sortedLastIndex=function(e,t){return nr(e,t,!0)},Vn.sortedLastIndexBy=function(e,t,n){return ir(e,t,oo(n,2),!0)},Vn.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var n=nr(e,t,!0)-1;if(Ba(e[n],t))return n}return-1},Vn.startCase=Xs,Vn.startsWith=function(e,t,n){return e=vs(e),n=null==n?0:oi(us(n),0,e.length),t=ar(t),e.slice(n,n+t.length)==t},Vn.subtract=Sl,Vn.sum=function(e){return e&&e.length?qt(e,nl):0},Vn.sumBy=function(e,t){return e&&e.length?qt(e,oo(t,2)):0},Vn.template=function(e,t,n){var i=Vn.templateSettings;n&&vo(e,t,n)&&(t=r),e=vs(e),t=bs({},t,i,Kr);var o,a,s=bs({},t.imports,i.imports,Kr),l=Ts(s),c=Yt(s,l),d=0,h=t.interpolate||_e,p="__p += '",u=Ce((t.escape||_e).source+"|"+h.source+"|"+(h===J?he:_e).source+"|"+(t.evaluate||_e).source+"|$","g"),f="//# sourceURL="+(Oe.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++it+"]")+"\n";e.replace(u,(function(t,n,i,r,s,l){return i||(i=r),p+=e.slice(d,l).replace(be,nn),n&&(o=!0,p+="' +\n__e("+n+") +\n'"),s&&(a=!0,p+="';\n"+s+";\n__p += '"),i&&(p+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),d=l+t.length,t})),p+="';\n";var g=Oe.call(t,"variable")&&t.variable;if(g){if(ce.test(g))throw new xe("Invalid `variable` option passed into `_.template`")}else p="with (obj) {\n"+p+"\n}\n";p=(a?p.replace(j,""):p).replace(U,"$1").replace($,"$1;"),p="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var m=Js((function(){return we(l,f+"return "+p).apply(r,c)}));if(m.source=p,Ka(m))throw m;return m},Vn.times=function(e,t){if((e=us(e))<1||e>h)return[];var n=u,i=vn(e,u);t=oo(t),e-=u;for(var r=Xt(i,t);++n<e;)t(n);return r},Vn.toFinite=ps,Vn.toInteger=us,Vn.toLength=fs,Vn.toLower=function(e){return vs(e).toLowerCase()},Vn.toNumber=gs,Vn.toSafeInteger=function(e){return e?oi(us(e),-9007199254740991,h):0===e?e:0},Vn.toString=vs,Vn.toUpper=function(e){return vs(e).toUpperCase()},Vn.trim=function(e,t,n){if((e=vs(e))&&(n||t===r))return Wt(e);if(!e||!(t=ar(t)))return e;var i=hn(e),o=hn(t);return yr(i,Zt(i,o),Qt(i,o)+1).join("")},Vn.trimEnd=function(e,t,n){if((e=vs(e))&&(n||t===r))return e.slice(0,pn(e)+1);if(!e||!(t=ar(t)))return e;var i=hn(e);return yr(i,0,Qt(i,hn(t))+1).join("")},Vn.trimStart=function(e,t,n){if((e=vs(e))&&(n||t===r))return e.replace(ie,"");if(!e||!(t=ar(t)))return e;var i=hn(e);return yr(i,Zt(i,hn(t))).join("")},Vn.truncate=function(e,t){var n=30,i="...";if(Qa(t)){var o="separator"in t?t.separator:o;n="length"in t?us(t.length):n,i="omission"in t?ar(t.omission):i}var a=(e=vs(e)).length;if(rn(e)){var s=hn(e);a=s.length}if(n>=a)return e;var l=n-dn(i);if(l<1)return i;var c=s?yr(s,0,l).join(""):e.slice(0,l);if(o===r)return c+i;if(s&&(l+=c.length-l),rs(o)){if(e.slice(l).search(o)){var d,h=c;for(o.global||(o=Ce(o.source,vs(pe.exec(o))+"g")),o.lastIndex=0;d=o.exec(h);)var p=d.index;c=c.slice(0,p===r?l:p)}}else if(e.indexOf(ar(o),l)!=l){var u=c.lastIndexOf(o);u>-1&&(c=c.slice(0,u))}return c+i},Vn.unescape=function(e){return(e=vs(e))&&X.test(e)?e.replace(G,un):e},Vn.uniqueId=function(e){var t=++Le;return vs(e)+t},Vn.upperCase=Ws,Vn.upperFirst=Ks,Vn.each=va,Vn.eachRight=ya,Vn.first=Go,al(Vn,(ml={},yi(Vn,(function(e,t){Oe.call(Vn.prototype,t)||(ml[t]=e)})),ml),{chain:!1}),Vn.VERSION="4.17.21",Ct(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Vn[e].placeholder=Vn})),Ct(["drop","take"],(function(e,t){jn.prototype[e]=function(n){n=n===r?1:mn(us(n),0);var i=this.__filtered__&&!t?new jn(this):this.clone();return i.__filtered__?i.__takeCount__=vn(n,i.__takeCount__):i.__views__.push({size:vn(n,u),type:e+(i.__dir__<0?"Right":"")}),i},jn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),Ct(["filter","map","takeWhile"],(function(e,t){var n=t+1,i=1==n||3==n;jn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:oo(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}})),Ct(["head","last"],(function(e,t){var n="take"+(t?"Right":"");jn.prototype[e]=function(){return this[n](1).value()[0]}})),Ct(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");jn.prototype[e]=function(){return this.__filtered__?new jn(this):this[n](1)}})),jn.prototype.compact=function(){return this.filter(nl)},jn.prototype.find=function(e){return this.filter(e).head()},jn.prototype.findLast=function(e){return this.reverse().find(e)},jn.prototype.invokeMap=Xi((function(e,t){return"function"==typeof e?new jn(this):this.map((function(n){return Mi(n,e,t)}))})),jn.prototype.reject=function(e){return this.filter(La(oo(e)))},jn.prototype.slice=function(e,t){e=us(e);var n=this;return n.__filtered__&&(e>0||t<0)?new jn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==r&&(n=(t=us(t))<0?n.dropRight(-t):n.take(t-e)),n)},jn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},jn.prototype.toArray=function(){return this.take(u)},yi(jn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),o=Vn[i?"take"+("last"==t?"Right":""):t],a=i||/^find/.test(t);o&&(Vn.prototype[t]=function(){var t=this.__wrapped__,s=i?[1]:arguments,l=t instanceof jn,c=s[0],d=l||Ua(t),h=function(e){var t=o.apply(Vn,It([e],s));return i&&p?t[0]:t};d&&n&&"function"==typeof c&&1!=c.length&&(l=d=!1);var p=this.__chain__,u=!!this.__actions__.length,f=a&&!p,g=l&&!u;if(!a&&d){t=g?t:new jn(this);var m=e.apply(t,s);return m.__actions__.push({func:pa,args:[h],thisArg:r}),new Fn(m,p)}return f&&g?e.apply(this,s):(m=this.thru(h),f?i?m.value()[0]:m.value():m)})})),Ct(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Me[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);Vn.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var r=this.value();return t.apply(Ua(r)?r:[],e)}return this[n]((function(n){return t.apply(Ua(n)?n:[],e)}))}})),yi(jn.prototype,(function(e,t){var n=Vn[t];if(n){var i=n.name+"";Oe.call(An,i)||(An[i]=[]),An[i].push({name:t,func:n})}})),An[Rr(r,2).name]=[{name:"wrapper",func:r}],jn.prototype.clone=function(){var e=new jn(this.__wrapped__);return e.__actions__=zr(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=zr(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=zr(this.__views__),e},jn.prototype.reverse=function(){if(this.__filtered__){var e=new jn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},jn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Ua(e),i=t<0,r=n?e.length:0,o=function(e,t,n){for(var i=-1,r=n.length;++i<r;){var o=n[i],a=o.size;switch(o.type){case"drop":e+=a;break;case"dropRight":t-=a;break;case"take":t=vn(t,e+a);break;case"takeRight":e=mn(e,t-a)}}return{start:e,end:t}}(0,r,this.__views__),a=o.start,s=o.end,l=s-a,c=i?s:a-1,d=this.__iteratees__,h=d.length,p=0,u=vn(l,this.__takeCount__);if(!n||!i&&r==l&&u==l)return hr(e,this.__actions__);var f=[];e:for(;l--&&p<u;){for(var g=-1,m=e[c+=t];++g<h;){var v=d[g],y=v.iteratee,_=v.type,b=y(m);if(2==_)m=b;else if(!b){if(1==_)continue e;break e}}f[p++]=m}return f},Vn.prototype.at=ua,Vn.prototype.chain=function(){return ha(this)},Vn.prototype.commit=function(){return new Fn(this.value(),this.__chain__)},Vn.prototype.next=function(){this.__values__===r&&(this.__values__=hs(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?r:this.__values__[this.__index__++]}},Vn.prototype.plant=function(e){for(var t,n=this;n instanceof Dn;){var i=Vo(n);i.__index__=0,i.__values__=r,t?o.__wrapped__=i:t=i;var o=i;n=n.__wrapped__}return o.__wrapped__=e,t},Vn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof jn){var t=e;return this.__actions__.length&&(t=new jn(this)),(t=t.reverse()).__actions__.push({func:pa,args:[Qo],thisArg:r}),new Fn(t,this.__chain__)}return this.thru(Qo)},Vn.prototype.toJSON=Vn.prototype.valueOf=Vn.prototype.value=function(){return hr(this.__wrapped__,this.__actions__)},Vn.prototype.first=Vn.prototype.head,Ke&&(Vn.prototype[Ke]=function(){return this}),Vn}();ht._=fn,(i=function(){return fn}.call(t,n,t,e))===r||(e.exports=i)}.call(this)},5378:(e,t,n)=>{var i=n(4932),r=n(5389),o=n(5128),a=n(6449);e.exports=function(e,t){return(a(e)?i:o)(e,r(t,3))}},3916:(e,t,n)=>{var i=n(3360),r=n(641),o=n(5389);e.exports=function(e,t){var n={};return t=o(t,3),r(e,(function(e,r,o){i(n,r,t(e,r,o))})),n}},4506:(e,t,n)=>{var i=n(3599),r=n(3335),o=n(3488);e.exports=function(e){return e&&e.length?i(e,o,r):void 0}},104:(e,t,n)=>{var i=n(3661);function r(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(r.Cache||i),n}r.Cache=i,e.exports=r},5364:(e,t,n)=>{var i=n(5250),r=n(999)((function(e,t,n){i(e,t,n)}));e.exports=r},1684:(e,t,n)=>{var i=n(3599),r=n(6176),o=n(3488);e.exports=function(e){return e&&e.length?i(e,o,r):void 0}},6533:(e,t,n)=>{var i=n(3599),r=n(5389),o=n(6176);e.exports=function(e,t){return e&&e.length?i(e,r(t,2),o):void 0}},3950:e=>{e.exports=function(){}},124:(e,t,n)=>{var i=n(9325);e.exports=function(){return i.Date.now()}},4383:(e,t,n)=>{var i=n(6001),r=n(8816)((function(e,t){return null==e?{}:i(e,t)}));e.exports=r},583:(e,t,n)=>{var i=n(7237),r=n(7255),o=n(8586),a=n(7797);e.exports=function(e){return o(e)?i(a(e)):r(e)}},3181:(e,t,n)=>{var i=n(5508)();e.exports=i},860:(e,t,n)=>{var i=n(882),r=n(909),o=n(5389),a=n(5558),s=n(6449);e.exports=function(e,t,n){var l=s(e)?i:a,c=arguments.length<3;return l(e,o(t,4),n,c,r)}},7091:(e,t,n)=>{var i=n(8984),r=n(5861),o=n(4894),a=n(5015),s=n(1993);e.exports=function(e){if(null==e)return 0;if(o(e))return a(e)?s(e):e.length;var t=r(e);return"[object Map]"==t||"[object Set]"==t?e.size:i(e).length}},3031:(e,t,n)=>{var i=n(3120),r=n(6155),o=n(9302),a=n(6800),s=o((function(e,t){if(null==e)return[];var n=t.length;return n>1&&a(e,t[0],t[1])?t=[]:n>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),r(e,i(t,1),[])}));e.exports=s},3345:e=>{e.exports=function(){return[]}},9935:e=>{e.exports=function(){return!1}},7400:(e,t,n)=>{var i=n(9374),r=1/0;e.exports=function(e){return e?(e=i(e))===r||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},1489:(e,t,n)=>{var i=n(7400);e.exports=function(e){var t=i(e),n=t%1;return t==t?n?t-n:t:0}},9374:(e,t,n)=>{var i=n(4128),r=n(3805),o=n(4394),a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=i(e);var n=s.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):a.test(e)?NaN:+e}},9884:(e,t,n)=>{var i=n(1791),r=n(7241);e.exports=function(e){return i(e,r(e))}},3222:(e,t,n)=>{var i=n(7556);e.exports=function(e){return null==e?"":i(e)}},9752:(e,t,n)=>{var i=n(3729),r=n(9344),o=n(641),a=n(5389),s=n(8879),l=n(6449),c=n(3656),d=n(1882),h=n(3805),p=n(7167);e.exports=function(e,t,n){var u=l(e),f=u||c(e)||p(e);if(t=a(t,4),null==n){var g=e&&e.constructor;n=f?u?new g:[]:h(e)&&d(g)?r(s(e)):{}}return(f?i:o)(e,(function(e,i,r){return t(n,e,i,r)})),n}},299:(e,t,n)=>{var i=n(3120),r=n(9302),o=n(5765),a=n(3693),s=r((function(e){return o(i(e,1,a,!0))}));e.exports=s},7200:(e,t,n)=>{var i=n(3222),r=0;e.exports=function(e){var t=++r;return i(e)+t}},5880:(e,t,n)=>{var i=n(514),r=n(5950);e.exports=function(e){return null==e?[]:i(e,r(e))}},7248:(e,t,n)=>{var i=n(6547),r=n(1234);e.exports=function(e,t){return r(e||[],t||[],i)}},5072:e=>{"use strict";var t=[];function n(e){for(var n=-1,i=0;i<t.length;i++)if(t[i].identifier===e){n=i;break}return n}function i(e,i){for(var o={},a=[],s=0;s<e.length;s++){var l=e[s],c=i.base?l[0]+i.base:l[0],d=o[c]||0,h="".concat(c," ").concat(d);o[c]=d+1;var p=n(h),u={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==p)t[p].references++,t[p].updater(u);else{var f=r(u,i);i.byIndex=s,t.splice(s,0,{identifier:h,updater:f,references:1})}a.push(h)}return a}function r(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,r){var o=i(e=e||[],r=r||{});return function(e){e=e||[];for(var a=0;a<o.length;a++){var s=n(o[a]);t[s].references--}for(var l=i(e,r),c=0;c<o.length;c++){var d=n(o[c]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}o=l}}},7659:e=>{"use strict";var t={};e.exports=function(e,n){var i=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(n)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},5056:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7825:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var i="";n.supports&&(i+="@supports (".concat(n.supports,") {")),n.media&&(i+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(i+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),i+=n.css,r&&(i+="}"),n.media&&(i+="}"),n.supports&&(i+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(i,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},9153:()=>{"use strict";const e=document.createElement("style");e.setAttribute("is","custom-style"),e.textContent="\n  :root {\n    --tb-orange-weak: #ffa726;\n    --tb-orange-strong: #f57c00;\n    --tb-orange-dark: #dc7320;\n    --tb-grey-darker: #e2e2e2;\n    --tb-grey-lighter: #f3f3f3;\n    --tb-ui-dark-accent: #757575;\n    --tb-ui-light-accent: #e0e0e0;\n    --tb-ui-border: var(--paper-grey-300);\n    --tb-graph-faded: #e0d4b3;\n    --tb-secondary-text-color: var(--paper-grey-800);\n    --tb-raised-button-shadow-color: rgba(0, 0, 0, 0.2);\n    --primary-background-color: #fff;\n    --secondary-background-color: #e9e9e9;\n    --tb-layout-background-color: #f5f5f5;\n    --tb-link: #1976d2; /* material blue 700. */\n    --tb-link-visited: #7b1fa2; /* material purple 700. */\n  }\n\n  :root .dark-mode {\n    --tb-ui-border: var(--paper-grey-700);\n    --tb-ui-dark-accent: var(--paper-grey-400);\n    --tb-ui-light-accent: var(--paper-grey-600);\n    --tb-secondary-text-color: var(--paper-grey-400);\n    --tb-raised-button-shadow-color: rgba(255, 255, 255, 0.5);\n    --primary-text-color: #fff;\n    --secondary-text-color: var(--paper-grey-400);\n    --primary-background-color: #303030;  /* material grey A400. */\n    --secondary-background-color: #3a3a3a;\n    --tb-layout-background-color: #3a3a3a;\n    --tb-link: #42a5f5; /* material blue 400. */\n    --tb-link-visited: #ba68c8; /* material purple 300. */\n    /* Overrides paper-material */\n    --shadow-elevation-2dp_-_box-shadow: 0 2px 2px 0 rgba(255, 255, 255, 0.14),\n      0 1px 5px 0 rgba(255, 255, 255, 0.12),\n      0 3px 1px -2px rgba(255, 255, 255, 0.2);\n  }\n",document.head.appendChild(e)}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.nc=void 0,(()=>{"use strict";var e={};n.r(e),n.d(e,{DefaultBuildParams:()=>Xf,EDGE_KEY_DELIM:()=>Mf,EllipsisNodeImpl:()=>Hf,FUNCTION_LIBRARY_NODE_PREFIX:()=>wf,GraphType:()=>Af,InclusionType:()=>Nf,LARGE_ATTRS_KEY:()=>Sf,LIMIT_ATTR_SIZE:()=>kf,MATCHED_NODE_LINK:()=>zf,MetaedgeImpl:()=>jf,MetanodeImpl:()=>Df,NAMESPACE_DELIM:()=>bf,NODE_TYPE:()=>Ef,NodeType:()=>Tf,OpNodeImpl:()=>Rf,PRECISION_INDEX:()=>Cf,ROOT_NAME:()=>xf,SeriesGroupingType:()=>If,SlimGraph:()=>Pf,build:()=>Wf,createGraph:()=>Kf,createMetaedge:()=>Ff,createMetanode:()=>Vf,createSeriesNode:()=>Uf,getGroupSeriesNodeButtonString:()=>ng,getHierarchicalPath:()=>eg,getIncludeNodeButtonString:()=>tg,getSeriesNodeName:()=>$f,getStrictName:()=>Jf,hasSimilarDegreeSequence:()=>Qf,joinStatsInfoWithGraph:()=>Bf});var t={};n.r(t),n.d(t,{DefaultHierarchyParams:()=>cg,Hierarchy:()=>sg,HierarchyEvent:()=>ag,build:()=>dg,getIncompatibleOps:()=>ug,joinAndAggregateStats:()=>pg,update:()=>hg});var i={};n.r(i),n.d(i,{Annotation:()=>kg,AnnotationList:()=>Ag,AnnotationType:()=>Mg,MetanodeColors:()=>wg,OpNodeColors:()=>xg,RenderGraphInfo:()=>zg,RenderGroupNodeInfo:()=>Lg,RenderMetaedgeInfo:()=>Ng,RenderNodeInfo:()=>Tg,SeriesNodeColors:()=>Sg,expandUntilNodeIsShown:()=>Bg,makeInExtract:()=>Rg,mapIndexToHue:()=>Vg});var r={};n.r(r),n.d(r,{y:()=>Bm});var o={};function a(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}function s(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function l(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{l(i.next(e))}catch(e){o(e)}}function s(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){e.done?r(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}l((i=i.apply(e,t||[])).next())}))}function c(e){return t=>{if(e)if(t.hasOwnProperty("is")){if(e!==t.is)throw new Error(`custom element tag names do not match: (${e} !== ${t.is})`)}else Object.defineProperty(t,"is",{value:e});window.customElements.define(t.is,t)}}function d(e,t,n){e.constructor.hasOwnProperty("properties")||Object.defineProperty(e.constructor,"properties",{value:{}}),e.constructor.properties[t]=Object.assign({},e.constructor.properties[t],n)}function h(e){return(t,n)=>{d(t,n,e)}}function p(...e){return(t,n)=>{t.constructor.hasOwnProperty("observers")||Object.defineProperty(t.constructor,"observers",{value:[]}),t.constructor.observers.push(`${n}(${e.join(",")})`)}}function u(e,...t){return(n,i,r)=>{const o=`__compute${i}`;Object.defineProperty(n,o,{value:r.get}),r.get=void 0,d(n,i,{computed:`${o}(${[e,...t].join(",")})`})}}function f(e){return t=>(n,i)=>{Object.defineProperty(n,i,{get(){return e(this.shadowRoot,t)},enumerable:!0,configurable:!0})}}n.r(o),Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError,f(((e,t)=>e.querySelector(t))),f(((e,t)=>e.querySelectorAll(t))),window.JSCompiler_renameProperty=function(e,t){return e};let g,m,v=/(url\()([^)]*)(\))/g,y=/(^\/[^\/])|(^#)|(^[\w-\d]*:)/;function _(e,t){if(e&&y.test(e))return e;if("//"===e)return e;if(void 0===g){g=!1;try{const e=new URL("b","http://a");e.pathname="c%20d",g="http://a/c%20d"===e.href}catch(e){}}if(t||(t=document.baseURI||window.location.href),g)try{return new URL(e,t).href}catch(t){return e}return m||(m=document.implementation.createHTMLDocument("temp"),m.base=m.createElement("base"),m.head.appendChild(m.base),m.anchor=m.createElement("a"),m.body.appendChild(m.anchor)),m.base.href=t,m.anchor.href=e,m.anchor.href||e}function b(e,t){return e.replace(v,(function(e,n,i,r){return n+"'"+_(i.replace(/["']/g,""),t)+"'"+r}))}function x(e){return e.substring(0,e.lastIndexOf("/")+1)}const w=!window.ShadyDOM||!window.ShadyDOM.inUse,S=(Boolean(!window.ShadyCSS||window.ShadyCSS.nativeCss),window.customElements.polyfillWrapFlushCallback,w&&"adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype&&(()=>{try{const e=new CSSStyleSheet;e.replaceSync("");const t=document.createElement("div");return t.attachShadow({mode:"open"}),t.shadowRoot.adoptedStyleSheets=[e],t.shadowRoot.adoptedStyleSheets[0]===e}catch(e){return!1}})());let E=window.Polymer&&window.Polymer.rootPath||x(document.baseURI||window.location.href),C=window.Polymer&&window.Polymer.sanitizeDOMValue||void 0,z=window.Polymer&&window.Polymer.setPassiveTouchGestures||!1,k=window.Polymer&&window.Polymer.strictTemplatePolicy||!1,M=window.Polymer&&window.Polymer.allowTemplateFromDomModule||!1,A=window.Polymer&&window.Polymer.legacyOptimizations||!1,T=window.Polymer&&window.Polymer.legacyWarnings||!1,N=window.Polymer&&window.Polymer.syncInitialRender||!1,I=window.Polymer&&window.Polymer.legacyUndefined||!1,O=window.Polymer&&window.Polymer.orderedComputed||!1,L=window.Polymer&&window.Polymer.removeNestedTemplates||!1,P=window.Polymer&&window.Polymer.fastDomIf||!1,H=window.Polymer&&window.Polymer.suppressTemplateNotifications||!1,R=window.Polymer&&window.Polymer.legacyNoObservedAttributes||!1,V=window.Polymer&&window.Polymer.useAdoptedStyleSheetsWithBuiltCSS||!1,B=0;function D(){}D.prototype.__mixinApplications,D.prototype.__mixinSet;const F=function(e){let t=e.__mixinApplications;t||(t=new WeakMap,e.__mixinApplications=t);let n=B++;return function(i){let r=i.__mixinSet;if(r&&r[n])return i;let o=t,a=o.get(i);if(!a){a=e(i),o.set(i,a);let t=Object.create(a.__mixinSet||r||null);t[n]=!0,a.__mixinSet=t}return a}};let j={},U={};function $(e,t){j[e]=U[e.toLowerCase()]=t}function G(e){return j[e]||U[e.toLowerCase()]}class q extends HTMLElement{static get observedAttributes(){return["id"]}static import(e,t){if(e){let n=G(e);return n&&t?n.querySelector(t):n}return null}attributeChangedCallback(e,t,n,i){t!==n&&this.register()}get assetpath(){if(!this.__assetpath){const e=window.HTMLImports&&HTMLImports.importForElement?HTMLImports.importForElement(this)||document:this.ownerDocument,t=_(this.getAttribute("assetpath")||"",e.baseURI);this.__assetpath=x(t)}return this.__assetpath}register(e){if(e=e||this.id){if(k&&void 0!==G(e))throw $(e,null),new Error(`strictTemplatePolicy: dom-module ${e} re-registered`);this.id=e,$(e,this),(t=this).querySelector("style")&&console.warn("dom-module %s has style outside template",t.id)}var t}}q.prototype.modules=j,customElements.define("dom-module",q);const X="shady-unscoped";function W(e){return q.import(e)}function K(e){const t=b((e.body?e.body:e).textContent,e.baseURI),n=document.createElement("style");return n.textContent=t,n}function Y(e){const t=e.trim().split(/\s+/),n=[];for(let e=0;e<t.length;e++)n.push(...J(t[e]));return n}function J(e){const t=W(e);if(!t)return console.warn("Could not find style data in module named",e),[];if(void 0===t._styles){const e=[];e.push(...Q(t));const n=t.querySelector("template");n&&e.push(...Z(n,t.assetpath)),t._styles=e}return t._styles}function Z(e,t){if(!e._styles){const n=[],i=e.content.querySelectorAll("style");for(let e=0;e<i.length;e++){let r=i[e],o=r.getAttribute("include");o&&n.push(...Y(o).filter((function(e,t,n){return n.indexOf(e)===t}))),t&&(r.textContent=b(r.textContent,t)),n.push(r)}e._styles=n}return e._styles}function Q(e){const t=[],n=e.querySelectorAll("link[rel=import][type~=css]");for(let e=0;e<n.length;e++){let i=n[e];if(i.import){const e=i.import,n=i.hasAttribute(X);if(n&&!e._unscopedStyle){const t=K(e);t.setAttribute(X,""),e._unscopedStyle=t}else e._style||(e._style=K(e));t.push(n?e._unscopedStyle:e._style)}}return t}function ee(e){let t=W(e);if(t&&void 0===t._cssText){let e=function(e){let t="",n=Q(e);for(let e=0;e<n.length;e++)t+=n[e].textContent;return t}(t),n=t.querySelector("template");n&&(e+=function(e,t){let n="";const i=Z(e,t);for(let e=0;e<i.length;e++){let t=i[e];t.parentNode&&t.parentNode.removeChild(t),n+=t.textContent}return n}(n,t.assetpath)),t._cssText=e||null}return t||console.warn("Could not find style data in module named",e),t&&t._cssText||""}const te=window.ShadyDOM&&window.ShadyDOM.noPatch&&window.ShadyDOM.wrap?window.ShadyDOM.wrap:window.ShadyDOM?e=>ShadyDOM.patch(e):e=>e;function ne(e){return e.indexOf(".")>=0}function ie(e){let t=e.indexOf(".");return-1===t?e:e.slice(0,t)}function re(e,t){return 0===e.indexOf(t+".")}function oe(e,t){return 0===t.indexOf(e+".")}function ae(e,t,n){return t+n.slice(e.length)}function se(e,t){return e===t||re(e,t)||oe(e,t)}function le(e){if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let i=e[n].toString().split(".");for(let e=0;e<i.length;e++)t.push(i[e])}return t.join(".")}return e}function ce(e){return Array.isArray(e)?le(e).split("."):e.toString().split(".")}function de(e,t,n){let i=e,r=ce(t);for(let e=0;e<r.length;e++){if(!i)return;i=i[r[e]]}return n&&(n.path=r.join(".")),i}function he(e,t,n){let i=e,r=ce(t),o=r[r.length-1];if(r.length>1){for(let e=0;e<r.length-1;e++)if(i=i[r[e]],!i)return;i[o]=n}else i[t]=n;return r.join(".")}const pe={},ue=/-[a-z]/g,fe=/([A-Z])/g;function ge(e){return pe[e]||(pe[e]=e.indexOf("-")<0?e:e.replace(ue,(e=>e[1].toUpperCase())))}function me(e){return pe[e]||(pe[e]=e.replace(fe,"-$1").toLowerCase())}let ve=0,ye=0,_e=[],be=0,xe=!1,we=document.createTextNode("");new window.MutationObserver((function(){xe=!1;const e=_e.length;for(let t=0;t<e;t++){let e=_e[t];if(e)try{e()}catch(e){setTimeout((()=>{throw e}))}}_e.splice(0,e),ye+=e})).observe(we,{characterData:!0});const Se={after:e=>({run:t=>window.setTimeout(t,e),cancel(e){window.clearTimeout(e)}}),run:(e,t)=>window.setTimeout(e,t),cancel(e){window.clearTimeout(e)}},Ee={run:e=>window.requestAnimationFrame(e),cancel(e){window.cancelAnimationFrame(e)}},Ce={run:e=>window.requestIdleCallback?window.requestIdleCallback(e):window.setTimeout(e,16),cancel(e){window.cancelIdleCallback?window.cancelIdleCallback(e):window.clearTimeout(e)}},ze={run:e=>(xe||(xe=!0,we.textContent=be++),_e.push(e),ve++),cancel(e){const t=e-ye;if(t>=0){if(!_e[t])throw new Error("invalid async handle: "+e);_e[t]=null}}},ke=ze,Me=F((e=>class extends e{static createProperties(e){const t=this.prototype;for(let n in e)n in t||t._createPropertyAccessor(n)}static attributeNameForProperty(e){return e.toLowerCase()}static typeForProperty(e){}_createPropertyAccessor(e,t){this._addPropertyToAttributeMap(e),this.hasOwnProperty(JSCompiler_renameProperty("__dataHasAccessor",this))||(this.__dataHasAccessor=Object.assign({},this.__dataHasAccessor)),this.__dataHasAccessor[e]||(this.__dataHasAccessor[e]=!0,this._definePropertyAccessor(e,t))}_addPropertyToAttributeMap(e){this.hasOwnProperty(JSCompiler_renameProperty("__dataAttributes",this))||(this.__dataAttributes=Object.assign({},this.__dataAttributes));let t=this.__dataAttributes[e];return t||(t=this.constructor.attributeNameForProperty(e),this.__dataAttributes[t]=e),t}_definePropertyAccessor(e,t){Object.defineProperty(this,e,{get(){return this.__data[e]},set:t?function(){}:function(t){this._setPendingProperty(e,t,!0)&&this._invalidateProperties()}})}constructor(){super(),this.__dataEnabled=!1,this.__dataReady=!1,this.__dataInvalid=!1,this.__data={},this.__dataPending=null,this.__dataOld=null,this.__dataInstanceProps=null,this.__dataCounter=0,this.__serializing=!1,this._initializeProperties()}ready(){this.__dataReady=!0,this._flushProperties()}_initializeProperties(){for(let e in this.__dataHasAccessor)this.hasOwnProperty(e)&&(this.__dataInstanceProps=this.__dataInstanceProps||{},this.__dataInstanceProps[e]=this[e],delete this[e])}_initializeInstanceProperties(e){Object.assign(this,e)}_setProperty(e,t){this._setPendingProperty(e,t)&&this._invalidateProperties()}_getProperty(e){return this.__data[e]}_setPendingProperty(e,t,n){let i=this.__data[e],r=this._shouldPropertyChange(e,t,i);return r&&(this.__dataPending||(this.__dataPending={},this.__dataOld={}),this.__dataOld&&!(e in this.__dataOld)&&(this.__dataOld[e]=i),this.__data[e]=t,this.__dataPending[e]=t),r}_isPropertyPending(e){return!(!this.__dataPending||!this.__dataPending.hasOwnProperty(e))}_invalidateProperties(){!this.__dataInvalid&&this.__dataReady&&(this.__dataInvalid=!0,ke.run((()=>{this.__dataInvalid&&(this.__dataInvalid=!1,this._flushProperties())})))}_enableProperties(){this.__dataEnabled||(this.__dataEnabled=!0,this.__dataInstanceProps&&(this._initializeInstanceProperties(this.__dataInstanceProps),this.__dataInstanceProps=null),this.ready())}_flushProperties(){this.__dataCounter++;const e=this.__data,t=this.__dataPending,n=this.__dataOld;this._shouldPropertiesChange(e,t,n)&&(this.__dataPending=null,this.__dataOld=null,this._propertiesChanged(e,t,n)),this.__dataCounter--}_shouldPropertiesChange(e,t,n){return Boolean(t)}_propertiesChanged(e,t,n){}_shouldPropertyChange(e,t,n){return n!==t&&(n==n||t==t)}attributeChangedCallback(e,t,n,i){t!==n&&this._attributeToProperty(e,n),super.attributeChangedCallback&&super.attributeChangedCallback(e,t,n,i)}_attributeToProperty(e,t,n){if(!this.__serializing){const i=this.__dataAttributes,r=i&&i[e]||e;this[r]=this._deserializeValue(t,n||this.constructor.typeForProperty(r))}}_propertyToAttribute(e,t,n){this.__serializing=!0,n=arguments.length<3?this[e]:n,this._valueToNodeAttribute(this,n,t||this.constructor.attributeNameForProperty(e)),this.__serializing=!1}_valueToNodeAttribute(e,t,n){const i=this._serializeValue(t);"class"!==n&&"name"!==n&&"slot"!==n||(e=te(e)),void 0===i?e.removeAttribute(n):e.setAttribute(n,""===i&&window.trustedTypes?window.trustedTypes.emptyScript:i)}_serializeValue(e){return"boolean"==typeof e?e?"":void 0:null!=e?e.toString():void 0}_deserializeValue(e,t){switch(t){case Boolean:return null!==e;case Number:return Number(e);default:return e}}})),Ae={};let Te=HTMLElement.prototype;for(;Te;){let e=Object.getOwnPropertyNames(Te);for(let t=0;t<e.length;t++)Ae[e[t]]=!0;Te=Object.getPrototypeOf(Te)}const Ne=window.trustedTypes?e=>trustedTypes.isHTML(e)||trustedTypes.isScript(e)||trustedTypes.isScriptURL(e):()=>!1,Ie=F((e=>{const t=Me(e);return class extends t{static createPropertiesForAttributes(){let e=this.observedAttributes;for(let t=0;t<e.length;t++)this.prototype._createPropertyAccessor(ge(e[t]))}static attributeNameForProperty(e){return me(e)}_initializeProperties(){this.__dataProto&&(this._initializeProtoProperties(this.__dataProto),this.__dataProto=null),super._initializeProperties()}_initializeProtoProperties(e){for(let t in e)this._setProperty(t,e[t])}_ensureAttribute(e,t){this.hasAttribute(e)||this._valueToNodeAttribute(this,t,e)}_serializeValue(e){if("object"==typeof e){if(e instanceof Date)return e.toString();if(e){if(Ne(e))return e;try{return JSON.stringify(e)}catch(e){return""}}}return super._serializeValue(e)}_deserializeValue(e,t){let n;switch(t){case Object:try{n=JSON.parse(e)}catch(t){n=e}break;case Array:try{n=JSON.parse(e)}catch(t){n=null,console.warn(`Polymer::Attributes: couldn't decode Array as JSON: ${e}`)}break;case Date:n=isNaN(e)?String(e):Number(e),n=new Date(n);break;default:n=super._deserializeValue(e,t)}return n}_definePropertyAccessor(e,t){!function(e,t){if(!Ae[t]){let n=e[t];void 0!==n&&(e.__data?e._setPendingProperty(t,n):(e.__dataProto?e.hasOwnProperty(JSCompiler_renameProperty("__dataProto",e))||(e.__dataProto=Object.create(e.__dataProto)):e.__dataProto={},e.__dataProto[t]=n))}}(this,e),super._definePropertyAccessor(e,t)}_hasAccessor(e){return this.__dataHasAccessor&&this.__dataHasAccessor[e]}_isPropertyPending(e){return Boolean(this.__dataPending&&e in this.__dataPending)}}})),Oe={"dom-if":!0,"dom-repeat":!0};let Le=!1,Pe=!1;const He=(()=>{const e=window.trustedTypes&&window.trustedTypes.createPolicy("polymer-template-event-attribute-policy",{createScript:e=>e});return(t,n,i)=>{const r=n.getAttribute(i);e&&i.startsWith("on-")?t.setAttribute(i,e.createScript(r,i)):t.setAttribute(i,r)}})();function Re(e){let t=e.getAttribute("is");if(t&&Oe[t]){let n=e;for(n.removeAttribute("is"),e=n.ownerDocument.createElement(t),n.parentNode.replaceChild(e,n),e.appendChild(n);n.attributes.length;){const{name:t}=n.attributes[0];He(e,n,t),n.removeAttribute(t)}}return e}function Ve(e,t){let n=t.parentInfo&&Ve(e,t.parentInfo);if(!n)return e;for(let e=n.firstChild,i=0;e;e=e.nextSibling)if(t.parentIndex===i++)return e}function Be(e,t,n,i){i.id&&(t[i.id]=n)}function De(e,t,n){if(n.events&&n.events.length)for(let i,r=0,o=n.events;r<o.length&&(i=o[r]);r++)e._addMethodEventListenerToNode(t,i.name,i.value,e)}function Fe(e,t,n,i){n.templateInfo&&(t._templateInfo=n.templateInfo,t._parentTemplateInfo=i)}const je=F((e=>class extends e{static _parseTemplate(e,t){if(!e._templateInfo){let n=e._templateInfo={};n.nodeInfoList=[],n.nestedTemplate=Boolean(t),n.stripWhiteSpace=t&&t.stripWhiteSpace||e.hasAttribute&&e.hasAttribute("strip-whitespace"),this._parseTemplateContent(e,n,{parent:null})}return e._templateInfo}static _parseTemplateContent(e,t,n){return this._parseTemplateNode(e.content,t,n)}static _parseTemplateNode(e,t,n){let i=!1,r=e;return"template"!=r.localName||r.hasAttribute("preserve-content")?"slot"===r.localName&&(t.hasInsertionPoint=!0):i=this._parseTemplateNestedTemplate(r,t,n)||i,function(e){(function(){if(!Le){Le=!0;const e=document.createElement("textarea");e.placeholder="a",Pe=e.placeholder===e.textContent}return Pe})()&&"textarea"===e.localName&&e.placeholder&&e.placeholder===e.textContent&&(e.textContent=null)}(r),r.firstChild&&this._parseTemplateChildNodes(r,t,n),r.hasAttributes&&r.hasAttributes()&&(i=this._parseTemplateNodeAttributes(r,t,n)||i),i||n.noted}static _parseTemplateChildNodes(e,t,n){if("script"!==e.localName&&"style"!==e.localName)for(let i,r=e.firstChild,o=0;r;r=i){if("template"==r.localName&&(r=Re(r)),i=r.nextSibling,r.nodeType===Node.TEXT_NODE){let n=i;for(;n&&n.nodeType===Node.TEXT_NODE;)r.textContent+=n.textContent,i=n.nextSibling,e.removeChild(n),n=i;if(t.stripWhiteSpace&&!r.textContent.trim()){e.removeChild(r);continue}}let a={parentIndex:o,parentInfo:n};this._parseTemplateNode(r,t,a)&&(a.infoIndex=t.nodeInfoList.push(a)-1),r.parentNode&&o++}}static _parseTemplateNestedTemplate(e,t,n){let i=e,r=this._parseTemplate(i,t);return(r.content=i.content.ownerDocument.createDocumentFragment()).appendChild(i.content),n.templateInfo=r,!0}static _parseTemplateNodeAttributes(e,t,n){let i=!1,r=Array.from(e.attributes);for(let o,a=r.length-1;o=r[a];a--)i=this._parseTemplateNodeAttribute(e,t,n,o.name,o.value)||i;return i}static _parseTemplateNodeAttribute(e,t,n,i,r){return"on-"===i.slice(0,3)?(e.removeAttribute(i),n.events=n.events||[],n.events.push({name:i.slice(3),value:r}),!0):"id"===i&&(n.id=r,!0)}static _contentForTemplate(e){let t=e._templateInfo;return t&&t.content||e.content}_stampTemplate(e,t){e&&!e.content&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate&&HTMLTemplateElement.decorate(e);let n=(t=t||this.constructor._parseTemplate(e)).nodeInfoList,i=t.content||e.content,r=document.importNode(i,!0);r.__noInsertionPoint=!t.hasInsertionPoint;let o=r.nodeList=new Array(n.length);r.$={};for(let e,i=0,a=n.length;i<a&&(e=n[i]);i++){let n=o[i]=Ve(r,e);Be(0,r.$,n,e),Fe(0,n,e,t),De(this,n,e)}return r}_addMethodEventListenerToNode(e,t,n,i){let r=function(e,t,n){return e=e._methodHost||e,function(t){e[n]?e[n](t,t.detail):console.warn("listener method `"+n+"` not defined")}}(i=i||e,0,n);return this._addEventListenerToNode(e,t,r),r}_addEventListenerToNode(e,t,n){e.addEventListener(t,n)}_removeEventListenerFromNode(e,t,n){e.removeEventListener(t,n)}}));let Ue=0;const $e=[],Ge={COMPUTE:"__computeEffects",REFLECT:"__reflectEffects",NOTIFY:"__notifyEffects",PROPAGATE:"__propagateEffects",OBSERVE:"__observeEffects",READ_ONLY:"__readOnly"},qe="__computeInfo",Xe=/[A-Z]/;function We(e,t,n){let i=e[t];if(i){if(!e.hasOwnProperty(t)&&(i=e[t]=Object.create(e[t]),n))for(let e in i){let t=i[e],n=i[e]=Array(t.length);for(let e=0;e<t.length;e++)n[e]=t[e]}}else i=e[t]={};return i}function Ke(e,t,n,i,r,o){if(t){let a=!1;const s=Ue++;for(let l in n){let c=t[r?ie(l):l];if(c)for(let t,d=0,h=c.length;d<h&&(t=c[d]);d++)t.info&&t.info.lastRun===s||r&&!Je(l,t.trigger)||(t.info&&(t.info.lastRun=s),t.fn(e,l,n,i,t.info,r,o),a=!0)}return a}return!1}function Ye(e,t,n,i,r,o,a,s){let l=!1,c=t[a?ie(i):i];if(c)for(let t,d=0,h=c.length;d<h&&(t=c[d]);d++)t.info&&t.info.lastRun===n||a&&!Je(i,t.trigger)||(t.info&&(t.info.lastRun=n),t.fn(e,i,r,o,t.info,a,s),l=!0);return l}function Je(e,t){if(t){let n=t.name;return n==e||!(!t.structured||!re(n,e))||!(!t.wildcard||!oe(n,e))}return!0}function Ze(e,t,n,i,r){let o="string"==typeof r.method?e[r.method]:r.method,a=r.property;o?o.call(e,e.__data[a],i[a]):r.dynamicFn||console.warn("observer method `"+r.method+"` not defined")}function Qe(e,t,n){let i=ie(t);return i!==t&&(et(e,me(i)+"-changed",n[t],t),!0)}function et(e,t,n,i){let r={value:n,queueProperty:!0};i&&(r.path=i),te(e).dispatchEvent(new CustomEvent(t,{detail:r}))}function tt(e,t,n,i,r,o){let a=(o?ie(t):t)!=t?t:null,s=a?de(e,a):e.__data[t];a&&void 0===s&&(s=n[t]),et(e,r.eventName,s,a)}function nt(e,t,n,i,r){let o=e.__data[t];C&&(o=C(o,r.attrName,"attribute",e)),e._propertyToAttribute(t,r.attrName,o)}const it=(e,t,n)=>{let i=0,r=t.length-1,o=-1;for(;i<=r;){const a=i+r>>1,s=n.get(t[a].methodInfo)-n.get(e.methodInfo);if(s<0)i=a+1;else{if(!(s>0)){o=a;break}r=a-1}}o<0&&(o=r+1),t.splice(o,0,e)},rt=(e,t,n,i,r)=>{const o=t[r?ie(e):e];if(o)for(let t=0;t<o.length;t++){const a=o[t];a.info.lastRun===Ue||r&&!Je(e,a.trigger)||(a.info.lastRun=Ue,it(a.info,n,i))}};function ot(e,t,n,i,r){let o=pt(e,t,n,0,r);if(o===$e)return!1;let a=r.methodInfo;return e.__dataHasAccessor&&e.__dataHasAccessor[a]?e._setPendingProperty(a,o,!0):(e[a]=o,!1)}function at(e,t,n,i,r,o,a){n.bindings=n.bindings||[];let s={kind:i,target:r,parts:o,literal:a,isCompound:1!==o.length};if(n.bindings.push(s),function(e){return Boolean(e.target)&&"attribute"!=e.kind&&"text"!=e.kind&&!e.isCompound&&"{"===e.parts[0].mode}(s)){let{event:e,negate:t}=s.parts[0];s.listenerEvent=e||me(r)+"-changed",s.listenerNegate=t}let l=t.nodeInfoList.length;for(let n=0;n<s.parts.length;n++){let i=s.parts[n];i.compoundIndex=n,st(e,t,s,i,l)}}function st(e,t,n,i,r){if(!i.literal)if("attribute"===n.kind&&"-"===n.target[0])console.warn("Cannot set attribute "+n.target+' because "-" is not a valid attribute starting character');else{let o=i.dependencies,a={index:r,binding:n,part:i,evaluator:e};for(let n=0;n<o.length;n++){let i=o[n];"string"==typeof i&&(i=_t(i),i.wildcard=!0),e._addTemplatePropertyEffect(t,i.rootProperty,{fn:lt,info:a,trigger:i})}}}function lt(e,t,n,i,r,o,a){let s=a[r.index],l=r.binding,c=r.part;if(o&&c.source&&t.length>c.source.length&&"property"==l.kind&&!l.isCompound&&s.__isPropertyEffectsClient&&s.__dataHasAccessor&&s.__dataHasAccessor[l.target]){let i=n[t];t=ae(c.source,l.target,t),s._setPendingPropertyOrPath(t,i,!1,!0)&&e._enqueueClient(s)}else{let a=r.evaluator._evaluateBinding(e,c,t,n,i,o);a!==$e&&function(e,t,n,i,r){if(r=function(e,t,n,i){if(n.isCompound){let r=e.__dataCompoundStorage[n.target];r[i.compoundIndex]=t,t=r.join("")}return"attribute"!==n.kind&&("textContent"!==n.target&&("value"!==n.target||"input"!==e.localName&&"textarea"!==e.localName)||(t=null==t?"":t)),t}(t,r,n,i),C&&(r=C(r,n.target,n.kind,t)),"attribute"==n.kind)e._valueToNodeAttribute(t,r,n.target);else{let i=n.target;t.__isPropertyEffectsClient&&t.__dataHasAccessor&&t.__dataHasAccessor[i]?t[Ge.READ_ONLY]&&t[Ge.READ_ONLY][i]||t._setPendingProperty(i,r)&&e._enqueueClient(t):e._setUnmanagedPropertyToNode(t,i,r)}}(e,s,l,c,a)}}function ct(e,t){if(t.isCompound){let n=e.__dataCompoundStorage||(e.__dataCompoundStorage={}),i=t.parts,r=new Array(i.length);for(let e=0;e<i.length;e++)r[e]=i[e].literal;let o=t.target;n[o]=r,t.literal&&"property"==t.kind&&("className"===o&&(e=te(e)),e[o]=t.literal)}}function dt(e,t,n){if(n.listenerEvent){let i=n.parts[0];e.addEventListener(n.listenerEvent,(function(e){!function(e,t,n,i,r){let o,a=e.detail,s=a&&a.path;s?(i=ae(n,i,s),o=a&&a.value):o=e.currentTarget[n],o=r?!o:o,t[Ge.READ_ONLY]&&t[Ge.READ_ONLY][i]||!t._setPendingPropertyOrPath(i,o,!0,Boolean(s))||a&&a.queueProperty||t._invalidateProperties()}(e,t,n.target,i.source,i.negate)}))}}function ht(e,t,n,i,r,o){o=t.static||o&&("object"!=typeof o||o[t.methodName]);let a={methodName:t.methodName,args:t.args,methodInfo:r,dynamicFn:o};for(let r,o=0;o<t.args.length&&(r=t.args[o]);o++)r.literal||e._addPropertyEffect(r.rootProperty,n,{fn:i,info:a,trigger:r});return o&&e._addPropertyEffect(t.methodName,n,{fn:i,info:a}),a}function pt(e,t,n,i,r){let o=e._methodHost||e,a=o[r.methodName];if(a){let i=e._marshalArgs(r.args,t,n);return i===$e?$e:a.apply(o,i)}r.dynamicFn||console.warn("method `"+r.methodName+"` not defined")}const ut=[],ft="(?:[a-zA-Z_$][\\w.:$\\-*]*)",gt="(?:("+ft+"|(?:[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?)|(?:(?:'(?:[^'\\\\]|\\\\.)*')|(?:\"(?:[^\"\\\\]|\\\\.)*\")))\\s*)",mt=new RegExp("(\\[\\[|{{)\\s*(?:(!)\\s*)?("+ft+"\\s*(?:\\(\\s*(?:(?:"+gt+"(?:,\\s*"+gt+")*)?)\\)\\s*)?)(?:]]|}})","g");function vt(e){let t="";for(let n=0;n<e.length;n++)t+=e[n].literal||"";return t}function yt(e){let t=e.match(/([^\s]+?)\(([\s\S]*)\)/);if(t){let e={methodName:t[1],static:!0,args:ut};return t[2].trim()?function(e,t){return t.args=e.map((function(e){let n=_t(e);return n.literal||(t.static=!1),n}),this),t}(t[2].replace(/\\,/g,"&comma;").split(","),e):e}return null}function _t(e){let t=e.trim().replace(/&comma;/g,",").replace(/\\(.)/g,"$1"),n={name:t,value:"",literal:!1},i=t[0];switch("-"===i&&(i=t[1]),i>="0"&&i<="9"&&(i="#"),i){case"'":case'"':n.value=t.slice(1,-1),n.literal=!0;break;case"#":n.value=Number(t),n.literal=!0}return n.literal||(n.rootProperty=ie(t),n.structured=ne(t),n.structured&&(n.wildcard=".*"==t.slice(-2),n.wildcard&&(n.name=t.slice(0,-2)))),n}function bt(e,t,n){let i=de(e,n);return void 0===i&&(i=t[n]),i}function xt(e,t,n,i){const r={indexSplices:i};I&&!e._overrideLegacyUndefined&&(t.splices=r),e.notifyPath(n+".splices",r),e.notifyPath(n+".length",t.length),I&&!e._overrideLegacyUndefined&&(r.indexSplices=[])}function wt(e,t,n,i,r,o){xt(e,t,n,[{index:i,addedCount:r,removed:o,object:t,type:"splice"}])}const St=F((e=>{const t=je(Ie(e));return class extends t{constructor(){super(),this.__isPropertyEffectsClient=!0,this.__dataClientsReady,this.__dataPendingClients,this.__dataToNotify,this.__dataLinkedPaths,this.__dataHasPaths,this.__dataCompoundStorage,this.__dataHost,this.__dataTemp,this.__dataClientsInitialized,this.__data,this.__dataPending,this.__dataOld,this.__computeEffects,this.__computeInfo,this.__reflectEffects,this.__notifyEffects,this.__propagateEffects,this.__observeEffects,this.__readOnly,this.__templateInfo,this._overrideLegacyUndefined}get PROPERTY_EFFECT_TYPES(){return Ge}_initializeProperties(){super._initializeProperties(),this._registerHost(),this.__dataClientsReady=!1,this.__dataPendingClients=null,this.__dataToNotify=null,this.__dataLinkedPaths=null,this.__dataHasPaths=!1,this.__dataCompoundStorage=this.__dataCompoundStorage||null,this.__dataHost=this.__dataHost||null,this.__dataTemp={},this.__dataClientsInitialized=!1}_registerHost(){if(Et.length){let e=Et[Et.length-1];e._enqueueClient(this),this.__dataHost=e}}_initializeProtoProperties(e){this.__data=Object.create(e),this.__dataPending=Object.create(e),this.__dataOld={}}_initializeInstanceProperties(e){let t=this[Ge.READ_ONLY];for(let n in e)t&&t[n]||(this.__dataPending=this.__dataPending||{},this.__dataOld=this.__dataOld||{},this.__data[n]=this.__dataPending[n]=e[n])}_addPropertyEffect(e,t,n){this._createPropertyAccessor(e,t==Ge.READ_ONLY);let i=We(this,t,!0)[e];i||(i=this[t][e]=[]),i.push(n)}_removePropertyEffect(e,t,n){let i=We(this,t,!0)[e],r=i.indexOf(n);r>=0&&i.splice(r,1)}_hasPropertyEffect(e,t){let n=this[t];return Boolean(n&&n[e])}_hasReadOnlyEffect(e){return this._hasPropertyEffect(e,Ge.READ_ONLY)}_hasNotifyEffect(e){return this._hasPropertyEffect(e,Ge.NOTIFY)}_hasReflectEffect(e){return this._hasPropertyEffect(e,Ge.REFLECT)}_hasComputedEffect(e){return this._hasPropertyEffect(e,Ge.COMPUTE)}_setPendingPropertyOrPath(e,t,n,i){if(i||ie(Array.isArray(e)?e[0]:e)!==e){if(!i){let n=de(this,e);if(!(e=he(this,e,t))||!super._shouldPropertyChange(e,t,n))return!1}if(this.__dataHasPaths=!0,this._setPendingProperty(e,t,n))return function(e,t,n){let i=e.__dataLinkedPaths;if(i){let r;for(let o in i){let a=i[o];oe(o,t)?(r=ae(o,a,t),e._setPendingPropertyOrPath(r,n,!0,!0)):oe(a,t)&&(r=ae(a,o,t),e._setPendingPropertyOrPath(r,n,!0,!0))}}}(this,e,t),!0}else{if(this.__dataHasAccessor&&this.__dataHasAccessor[e])return this._setPendingProperty(e,t,n);this[e]=t}return!1}_setUnmanagedPropertyToNode(e,t,n){n===e[t]&&"object"!=typeof n||("className"===t&&(e=te(e)),e[t]=n)}_setPendingProperty(e,t,n){let i=this.__dataHasPaths&&ne(e),r=i?this.__dataTemp:this.__data;return!!this._shouldPropertyChange(e,t,r[e])&&(this.__dataPending||(this.__dataPending={},this.__dataOld={}),e in this.__dataOld||(this.__dataOld[e]=this.__data[e]),i?this.__dataTemp[e]=t:this.__data[e]=t,this.__dataPending[e]=t,(i||this[Ge.NOTIFY]&&this[Ge.NOTIFY][e])&&(this.__dataToNotify=this.__dataToNotify||{},this.__dataToNotify[e]=n),!0)}_setProperty(e,t){this._setPendingProperty(e,t,!0)&&this._invalidateProperties()}_invalidateProperties(){this.__dataReady&&this._flushProperties()}_enqueueClient(e){this.__dataPendingClients=this.__dataPendingClients||[],e!==this&&this.__dataPendingClients.push(e)}_flushClients(){this.__dataClientsReady?this.__enableOrFlushClients():(this.__dataClientsReady=!0,this._readyClients(),this.__dataReady=!0)}__enableOrFlushClients(){let e=this.__dataPendingClients;if(e){this.__dataPendingClients=null;for(let t=0;t<e.length;t++){let n=e[t];n.__dataEnabled?n.__dataPending&&n._flushProperties():n._enableProperties()}}}_readyClients(){this.__enableOrFlushClients()}setProperties(e,t){for(let n in e)!t&&this[Ge.READ_ONLY]&&this[Ge.READ_ONLY][n]||this._setPendingPropertyOrPath(n,e[n],!0);this._invalidateProperties()}ready(){this._flushProperties(),this.__dataClientsReady||this._flushClients(),this.__dataPending&&this._flushProperties()}_propertiesChanged(e,t,n){let i,r=this.__dataHasPaths;this.__dataHasPaths=!1,function(e,t,n,i){let r=e[Ge.COMPUTE];if(r)if(O){Ue++;const o=function(e){let t=e.constructor.__orderedComputedDeps;if(!t){t=new Map;const n=e[Ge.COMPUTE];let i,{counts:r,ready:o,total:a}=function(e){const t=e[qe],n={},i=e[Ge.COMPUTE],r=[];let o=0;for(let e in t){const i=t[e];o+=n[e]=i.args.filter((e=>!e.literal)).length+(i.dynamicFn?1:0)}for(let e in i)t[e]||r.push(e);return{counts:n,ready:r,total:o}}(e);for(;i=o.shift();){t.set(i,t.size);const e=n[i];e&&e.forEach((e=>{const t=e.info.methodInfo;--a,0==--r[t]&&o.push(t)}))}if(0!==a){const t=e;console.warn(`Computed graph for ${t.localName} incomplete; circular?`)}e.constructor.__orderedComputedDeps=t}return t}(e),a=[];for(let e in t)rt(e,r,a,o,i);let s;for(;s=a.shift();)ot(e,"",t,0,s)&&rt(s.methodInfo,r,a,o,i);Object.assign(n,e.__dataOld),Object.assign(t,e.__dataPending),e.__dataPending=null}else{let o=t;for(;Ke(e,r,o,n,i);)Object.assign(n,e.__dataOld),Object.assign(t,e.__dataPending),o=e.__dataPending,e.__dataPending=null}}(this,t,n,r),i=this.__dataToNotify,this.__dataToNotify=null,this._propagatePropertyChanges(t,n,r),this._flushClients(),Ke(this,this[Ge.REFLECT],t,n,r),Ke(this,this[Ge.OBSERVE],t,n,r),i&&function(e,t,n,i,r){let o,a,s=e[Ge.NOTIFY],l=Ue++;for(let a in t)t[a]&&(s&&Ye(e,s,l,a,n,i,r)||r&&Qe(e,a,n))&&(o=!0);o&&(a=e.__dataHost)&&a._invalidateProperties&&a._invalidateProperties()}(this,i,t,n,r),1==this.__dataCounter&&(this.__dataTemp={})}_propagatePropertyChanges(e,t,n){this[Ge.PROPAGATE]&&Ke(this,this[Ge.PROPAGATE],e,t,n),this.__templateInfo&&this._runEffectsForTemplate(this.__templateInfo,e,t,n)}_runEffectsForTemplate(e,t,n,i){const r=(t,i)=>{Ke(this,e.propertyEffects,t,n,i,e.nodeList);for(let r=e.firstChild;r;r=r.nextSibling)this._runEffectsForTemplate(r,t,n,i)};e.runEffects?e.runEffects(r,t,i):r(t,i)}linkPaths(e,t){e=le(e),t=le(t),this.__dataLinkedPaths=this.__dataLinkedPaths||{},this.__dataLinkedPaths[e]=t}unlinkPaths(e){e=le(e),this.__dataLinkedPaths&&delete this.__dataLinkedPaths[e]}notifySplices(e,t){let n={path:""};xt(this,de(this,e,n),n.path,t)}get(e,t){return de(t||this,e)}set(e,t,n){n?he(n,e,t):this[Ge.READ_ONLY]&&this[Ge.READ_ONLY][e]||this._setPendingPropertyOrPath(e,t,!0)&&this._invalidateProperties()}push(e,...t){let n={path:""},i=de(this,e,n),r=i.length,o=i.push(...t);return t.length&&wt(this,i,n.path,r,t.length,[]),o}pop(e){let t={path:""},n=de(this,e,t),i=Boolean(n.length),r=n.pop();return i&&wt(this,n,t.path,n.length,0,[r]),r}splice(e,t,n,...i){let r,o={path:""},a=de(this,e,o);return t<0?t=a.length-Math.floor(-t):t&&(t=Math.floor(t)),r=2===arguments.length?a.splice(t):a.splice(t,n,...i),(i.length||r.length)&&wt(this,a,o.path,t,i.length,r),r}shift(e){let t={path:""},n=de(this,e,t),i=Boolean(n.length),r=n.shift();return i&&wt(this,n,t.path,0,0,[r]),r}unshift(e,...t){let n={path:""},i=de(this,e,n),r=i.unshift(...t);return t.length&&wt(this,i,n.path,0,t.length,[]),r}notifyPath(e,t){let n;if(1==arguments.length){let i={path:""};t=de(this,e,i),n=i.path}else n=Array.isArray(e)?le(e):e;this._setPendingPropertyOrPath(n,t,!0,!0)&&this._invalidateProperties()}_createReadOnlyProperty(e,t){var n;this._addPropertyEffect(e,Ge.READ_ONLY),t&&(this["_set"+(n=e,n[0].toUpperCase()+n.substring(1))]=function(t){this._setProperty(e,t)})}_createPropertyObserver(e,t,n){let i={property:e,method:t,dynamicFn:Boolean(n)};this._addPropertyEffect(e,Ge.OBSERVE,{fn:Ze,info:i,trigger:{name:e}}),n&&this._addPropertyEffect(t,Ge.OBSERVE,{fn:Ze,info:i,trigger:{name:t}})}_createMethodObserver(e,t){let n=yt(e);if(!n)throw new Error("Malformed observer expression '"+e+"'");ht(this,n,Ge.OBSERVE,pt,null,t)}_createNotifyingProperty(e){this._addPropertyEffect(e,Ge.NOTIFY,{fn:tt,info:{eventName:me(e)+"-changed",property:e}})}_createReflectedProperty(e){let t=this.constructor.attributeNameForProperty(e);"-"===t[0]?console.warn("Property "+e+" cannot be reflected to attribute "+t+' because "-" is not a valid starting attribute name. Use a lowercase first letter for the property instead.'):this._addPropertyEffect(e,Ge.REFLECT,{fn:nt,info:{attrName:t}})}_createComputedProperty(e,t,n){let i=yt(t);if(!i)throw new Error("Malformed computed expression '"+t+"'");const r=ht(this,i,Ge.COMPUTE,ot,e,n);We(this,qe)[e]=r}_marshalArgs(e,t,n){const i=this.__data,r=[];for(let o=0,a=e.length;o<a;o++){let{name:a,structured:s,wildcard:l,value:c,literal:d}=e[o];if(!d)if(l){const e=oe(a,t),r=bt(i,n,e?t:a);c={path:e?t:a,value:r,base:e?de(i,a):r}}else c=s?bt(i,n,a):i[a];if(I&&!this._overrideLegacyUndefined&&void 0===c&&e.length>1)return $e;r[o]=c}return r}static addPropertyEffect(e,t,n){this.prototype._addPropertyEffect(e,t,n)}static createPropertyObserver(e,t,n){this.prototype._createPropertyObserver(e,t,n)}static createMethodObserver(e,t){this.prototype._createMethodObserver(e,t)}static createNotifyingProperty(e){this.prototype._createNotifyingProperty(e)}static createReadOnlyProperty(e,t){this.prototype._createReadOnlyProperty(e,t)}static createReflectedProperty(e){this.prototype._createReflectedProperty(e)}static createComputedProperty(e,t,n){this.prototype._createComputedProperty(e,t,n)}static bindTemplate(e){return this.prototype._bindTemplate(e)}_bindTemplate(e,t){let n=this.constructor._parseTemplate(e),i=this.__preBoundTemplateInfo==n;if(!i)for(let e in n.propertyEffects)this._createPropertyAccessor(e);if(t)if(n=Object.create(n),n.wasPreBound=i,this.__templateInfo){const t=e._parentTemplateInfo||this.__templateInfo,i=t.lastChild;n.parent=t,t.lastChild=n,n.previousSibling=i,i?i.nextSibling=n:t.firstChild=n}else this.__templateInfo=n;else this.__preBoundTemplateInfo=n;return n}static _addTemplatePropertyEffect(e,t,n){(e.hostProps=e.hostProps||{})[t]=!0;let i=e.propertyEffects=e.propertyEffects||{};(i[t]=i[t]||[]).push(n)}_stampTemplate(e,t){t=t||this._bindTemplate(e,!0),Et.push(this);let n=super._stampTemplate(e,t);if(Et.pop(),t.nodeList=n.nodeList,!t.wasPreBound){let e=t.childNodes=[];for(let t=n.firstChild;t;t=t.nextSibling)e.push(t)}return n.templateInfo=t,function(e,t){let{nodeList:n,nodeInfoList:i}=t;if(i.length)for(let t=0;t<i.length;t++){let r=i[t],o=n[t],a=r.bindings;if(a)for(let t=0;t<a.length;t++){let n=a[t];ct(o,n),dt(o,e,n)}o.__dataHost=e}}(this,t),this.__dataClientsReady&&(this._runEffectsForTemplate(t,this.__data,null,!1),this._flushClients()),n}_removeBoundDom(e){const t=e.templateInfo,{previousSibling:n,nextSibling:i,parent:r}=t;n?n.nextSibling=i:r&&(r.firstChild=i),i?i.previousSibling=n:r&&(r.lastChild=n),t.nextSibling=t.previousSibling=null;let o=t.childNodes;for(let e=0;e<o.length;e++){let t=o[e];te(te(t).parentNode).removeChild(t)}}static _parseTemplateNode(e,n,i){let r=t._parseTemplateNode.call(this,e,n,i);if(e.nodeType===Node.TEXT_NODE){let t=this._parseBindings(e.textContent,n);t&&(e.textContent=vt(t)||" ",at(this,n,i,"text","textContent",t),r=!0)}return r}static _parseTemplateNodeAttribute(e,n,i,r,o){let a=this._parseBindings(o,n);if(a){let t=r,o="property";Xe.test(r)?o="attribute":"$"==r[r.length-1]&&(r=r.slice(0,-1),o="attribute");let s=vt(a);return s&&"attribute"==o&&("class"==r&&e.hasAttribute("class")&&(s+=" "+e.getAttribute(r)),e.setAttribute(r,s)),"attribute"==o&&"disable-upgrade$"==t&&e.setAttribute(r,""),"input"===e.localName&&"value"===t&&e.setAttribute(t,""),e.removeAttribute(t),"property"===o&&(r=ge(r)),at(this,n,i,o,r,a,s),!0}return t._parseTemplateNodeAttribute.call(this,e,n,i,r,o)}static _parseTemplateNestedTemplate(e,n,i){let r=t._parseTemplateNestedTemplate.call(this,e,n,i);const o=e.parentNode,a=i.templateInfo,s="dom-if"===o.localName,l="dom-repeat"===o.localName;L&&(s||l)&&(o.removeChild(e),(i=i.parentInfo).templateInfo=a,i.noted=!0,r=!1);let c=a.hostProps;if(P&&s)c&&(n.hostProps=Object.assign(n.hostProps||{},c),L||(i.parentInfo.noted=!0));else{let e="{";for(let t in c)at(this,n,i,"property","_host_"+t,[{mode:e,source:t,dependencies:[t],hostProp:!0}])}return r}static _parseBindings(e,t){let n,i=[],r=0;for(;null!==(n=mt.exec(e));){n.index>r&&i.push({literal:e.slice(r,n.index)});let o=n[1][0],a=Boolean(n[2]),s=n[3].trim(),l=!1,c="",d=-1;"{"==o&&(d=s.indexOf("::"))>0&&(c=s.substring(d+2),s=s.substring(0,d),l=!0);let h=yt(s),p=[];if(h){let{args:e,methodName:n}=h;for(let t=0;t<e.length;t++){let n=e[t];n.literal||p.push(n)}let i=t.dynamicFns;(i&&i[n]||h.static)&&(p.push(n),h.dynamicFn=!0)}else p.push(s);i.push({source:s,mode:o,negate:a,customEvent:l,signature:h,dependencies:p,event:c}),r=mt.lastIndex}if(r&&r<e.length){let t=e.substring(r);t&&i.push({literal:t})}return i.length?i:null}static _evaluateBinding(e,t,n,i,r,o){let a;return a=t.signature?pt(e,n,i,0,t.signature):n!=t.source?de(e,t.source):o&&ne(n)?de(e,n):e.__data[n],t.negate&&(a=!a),a}}})),Et=[],Ct=[];function zt(e){Ct.push(e)}const kt=F((e=>{const t=Me(e);function n(e){const t=Object.getPrototypeOf(e);return t.prototype instanceof r?t:null}function i(e){if(!e.hasOwnProperty(JSCompiler_renameProperty("__ownProperties",e))){let t=null;if(e.hasOwnProperty(JSCompiler_renameProperty("properties",e))){const n=e.properties;n&&(t=function(e){const t={};for(let n in e){const i=e[n];t[n]="function"==typeof i?{type:i}:i}return t}(n))}e.__ownProperties=t}return e.__ownProperties}class r extends t{static get observedAttributes(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__observedAttributes",this))){zt(this.prototype);const e=this._properties;this.__observedAttributes=e?Object.keys(e).map((e=>this.prototype._addPropertyToAttributeMap(e))):[]}return this.__observedAttributes}static finalize(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__finalized",this))){const e=n(this);e&&e.finalize(),this.__finalized=!0,this._finalizeClass()}}static _finalizeClass(){const e=i(this);e&&this.createProperties(e)}static get _properties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__properties",this))){const e=n(this);this.__properties=Object.assign({},e&&e._properties,i(this))}return this.__properties}static typeForProperty(e){const t=this._properties[e];return t&&t.type}_initializeProperties(){this.constructor.finalize(),super._initializeProperties()}connectedCallback(){super.connectedCallback&&super.connectedCallback(),this._enableProperties()}disconnectedCallback(){super.disconnectedCallback&&super.disconnectedCallback()}}return r})),Mt=window.ShadyCSS&&window.ShadyCSS.cssBuild,At=F((e=>{const t=kt(St(e));function n(e,t,n,i){n.computed&&(n.readOnly=!0),n.computed&&(e._hasReadOnlyEffect(t)?console.warn(`Cannot redefine computed property '${t}'.`):e._createComputedProperty(t,n.computed,i)),n.readOnly&&!e._hasReadOnlyEffect(t)?e._createReadOnlyProperty(t,!n.computed):!1===n.readOnly&&e._hasReadOnlyEffect(t)&&console.warn(`Cannot make readOnly property '${t}' non-readOnly.`),n.reflectToAttribute&&!e._hasReflectEffect(t)?e._createReflectedProperty(t):!1===n.reflectToAttribute&&e._hasReflectEffect(t)&&console.warn(`Cannot make reflected property '${t}' non-reflected.`),n.notify&&!e._hasNotifyEffect(t)?e._createNotifyingProperty(t):!1===n.notify&&e._hasNotifyEffect(t)&&console.warn(`Cannot make notify property '${t}' non-notify.`),n.observer&&e._createPropertyObserver(t,n.observer,i[n.observer]),e._addPropertyToAttributeMap(t)}return class extends t{static get polymerElementVersion(){return"3.5.1"}static _finalizeClass(){t._finalizeClass.call(this);const e=((n=this).hasOwnProperty(JSCompiler_renameProperty("__ownObservers",n))||(n.__ownObservers=n.hasOwnProperty(JSCompiler_renameProperty("observers",n))?n.observers:null),n.__ownObservers);var n;e&&this.createObservers(e,this._properties),this._prepareTemplate()}static _prepareTemplate(){let e=this.template;e&&("string"==typeof e?(console.error("template getter must return HTMLTemplateElement"),e=null):A||(e=e.cloneNode(!0))),this.prototype._template=e}static createProperties(e){for(let t in e)n(this.prototype,t,e[t],e)}static createObservers(e,t){const n=this.prototype;for(let i=0;i<e.length;i++)n._createMethodObserver(e[i],t)}static get template(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_template",this))){let e=this.prototype.hasOwnProperty(JSCompiler_renameProperty("_template",this.prototype))?this.prototype._template:void 0;"function"==typeof e&&(e=e()),this._template=void 0!==e?e:this.hasOwnProperty(JSCompiler_renameProperty("is",this))&&function(e){let t=null;if(e&&(!k||M)&&(t=q.import(e,"template"),k&&!t))throw new Error(`strictTemplatePolicy: expecting dom-module or null template for ${e}`);return t}(this.is)||Object.getPrototypeOf(this.prototype).constructor.template}return this._template}static set template(e){this._template=e}static get importPath(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_importPath",this))){const e=this.importMeta;if(e)this._importPath=x(e.url);else{const e=q.import(this.is);this._importPath=e&&e.assetpath||Object.getPrototypeOf(this.prototype).constructor.importPath}}return this._importPath}constructor(){super(),this._template,this._importPath,this.rootPath,this.importPath,this.root,this.$}_initializeProperties(){this.constructor.finalize(),this.constructor._finalizeTemplate(this.localName),super._initializeProperties(),this.rootPath=E,this.importPath=this.constructor.importPath;let e=function(e){if(!e.hasOwnProperty(JSCompiler_renameProperty("__propertyDefaults",e))){e.__propertyDefaults=null;let t=e._properties;for(let n in t){let i=t[n];"value"in i&&(e.__propertyDefaults=e.__propertyDefaults||{},e.__propertyDefaults[n]=i)}}return e.__propertyDefaults}(this.constructor);if(e)for(let t in e){let n=e[t];if(this._canApplyPropertyDefault(t)){let e="function"==typeof n.value?n.value.call(this):n.value;this._hasAccessor(t)?this._setPendingProperty(t,e,!0):this[t]=e}}}_canApplyPropertyDefault(e){return!this.hasOwnProperty(e)}static _processStyleText(e,t){return b(e,t)}static _finalizeTemplate(e){const t=this.prototype._template;if(t&&!t.__polymerFinalized){t.__polymerFinalized=!0;const n=this.importPath;(function(e,t,n,i){if(!Mt){const r=t.content.querySelectorAll("style"),o=Z(t),a=function(e){let t=W(e);return t?Q(t):[]}(n),s=t.content.firstElementChild;for(let n=0;n<a.length;n++){let r=a[n];r.textContent=e._processStyleText(r.textContent,i),t.content.insertBefore(r,s)}let l=0;for(let t=0;t<o.length;t++){let n=o[t],a=r[l];a!==n?(n=n.cloneNode(!0),a.parentNode.insertBefore(n,a)):l++,n.textContent=e._processStyleText(n.textContent,i)}}if(window.ShadyCSS&&window.ShadyCSS.prepareTemplate(t,n),V&&Mt&&S){const n=t.content.querySelectorAll("style");if(n){let t="";Array.from(n).forEach((e=>{t+=e.textContent,e.parentNode.removeChild(e)})),e._styleSheet=new CSSStyleSheet,e._styleSheet.replaceSync(t)}}})(this,t,e,n?_(n):""),this.prototype._bindTemplate(t)}}connectedCallback(){window.ShadyCSS&&this._template&&window.ShadyCSS.styleElement(this),super.connectedCallback()}ready(){this._template&&(this.root=this._stampTemplate(this._template),this.$=this.root.$),super.ready()}_readyClients(){this._template&&(this.root=this._attachDom(this.root)),super._readyClients()}_attachDom(e){const t=te(this);if(t.attachShadow)return e?(t.shadowRoot||(t.attachShadow({mode:"open",shadyUpgradeFragment:e}),t.shadowRoot.appendChild(e),this.constructor._styleSheet&&(t.shadowRoot.adoptedStyleSheets=[this.constructor._styleSheet])),N&&window.ShadyDOM&&window.ShadyDOM.flushInitial(t.shadowRoot),t.shadowRoot):null;throw new Error("ShadowDOM not available. PolymerElement can create dom as children instead of in ShadowDOM by setting `this.root = this;` before `ready`.")}updateStyles(e){window.ShadyCSS&&window.ShadyCSS.styleSubtree(this,e)}resolveUrl(e,t){return!t&&this.importPath&&(t=_(this.importPath)),_(e,t)}static _parseTemplateContent(e,n,i){return n.dynamicFns=n.dynamicFns||this._properties,t._parseTemplateContent.call(this,e,n,i)}static _addTemplatePropertyEffect(e,n,i){return!T||n in this._properties||i.info.part.signature&&i.info.part.signature.static||i.info.part.hostProp||e.nestedTemplate||console.warn(`Property '${n}' used in template but not declared in 'properties'; attribute will not be observed.`),t._addTemplatePropertyEffect.call(this,e,n,i)}}})),Tt=window.trustedTypes&&trustedTypes.createPolicy("polymer-html-literal",{createHTML:e=>e});class Nt{constructor(e,t){Lt(e,t);const n=t.reduce(((t,n,i)=>t+It(n)+e[i+1]),e[0]);this.value=n.toString()}toString(){return this.value}}function It(e){if(e instanceof Nt)return e.value;throw new Error(`non-literal value passed to Polymer's htmlLiteral function: ${e}`)}const Ot=function(e,...t){Lt(e,t);const n=document.createElement("template");let i=t.reduce(((t,n,i)=>t+function(e){if(e instanceof HTMLTemplateElement)return e.innerHTML;if(e instanceof Nt)return It(e);throw new Error(`non-template value passed to Polymer's html function: ${e}`)}(n)+e[i+1]),e[0]);return Tt&&(i=Tt.createHTML(i)),n.innerHTML=i,n},Lt=(e,t)=>{if(!Array.isArray(e)||!Array.isArray(e.raw)||t.length!==e.length-1)throw new TypeError("Invalid call to the html template tag")},Pt=At(HTMLElement),Ht=!(window.ShadyDOM&&window.ShadyDOM.inUse);let Rt,Vt;function Bt(e){Rt=(!e||!e.shimcssproperties)&&(Ht||Boolean(!navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)&&window.CSS&&CSS.supports&&CSS.supports("box-shadow","0 0 0 var(--foo)")))}window.ShadyCSS&&void 0!==window.ShadyCSS.cssBuild&&(Vt=window.ShadyCSS.cssBuild);const Dt=Boolean(window.ShadyCSS&&window.ShadyCSS.disableRuntime);window.ShadyCSS&&void 0!==window.ShadyCSS.nativeCss?Rt=window.ShadyCSS.nativeCss:window.ShadyCSS?(Bt(window.ShadyCSS),window.ShadyCSS=void 0):Bt(window.WebComponents&&window.WebComponents.flags);const Ft=Rt;class jt{constructor(){this.start=0,this.end=0,this.previous=null,this.parent=null,this.rules=null,this.parsedCssText="",this.cssText="",this.atRule=!1,this.type=0,this.keyframesName="",this.selector="",this.parsedSelector=""}}function Ut(e){return $t(function(e){let t=new jt;t.start=0,t.end=e.length;let n=t;for(let i=0,r=e.length;i<r;i++)if(e[i]===Xt){n.rules||(n.rules=[]);let e=n,t=e.rules[e.rules.length-1]||null;n=new jt,n.start=i+1,n.parent=e,n.previous=t,e.rules.push(n)}else e[i]===Wt&&(n.end=i+1,n=n.parent||t);return t}(e=e.replace(Kt.comments,"").replace(Kt.port,"")),e)}function $t(e,t){let n=t.substring(e.start,e.end-1);if(e.parsedCssText=e.cssText=n.trim(),e.parent){let i=e.previous?e.previous.end:e.parent.start;n=t.substring(i,e.start-1),n=function(e){return e.replace(/\\([0-9a-f]{1,6})\s/gi,(function(){let e=arguments[1],t=6-e.length;for(;t--;)e="0"+e;return"\\"+e}))}(n),n=n.replace(Kt.multipleSpaces," "),n=n.substring(n.lastIndexOf(";")+1);let r=e.parsedSelector=e.selector=n.trim();e.atRule=0===r.indexOf(Zt),e.atRule?0===r.indexOf(Jt)?e.type=qt.MEDIA_RULE:r.match(Kt.keyframesRule)&&(e.type=qt.KEYFRAMES_RULE,e.keyframesName=e.selector.split(Kt.multipleSpaces).pop()):0===r.indexOf(Yt)?e.type=qt.MIXIN_RULE:e.type=qt.STYLE_RULE}let i=e.rules;if(i)for(let e,n=0,r=i.length;n<r&&(e=i[n]);n++)$t(e,t);return e}function Gt(e,t,n=""){let i="";if(e.cssText||e.rules){let n=e.rules;if(n&&!function(e){let t=e[0];return Boolean(t)&&Boolean(t.selector)&&0===t.selector.indexOf(Yt)}(n))for(let e,r=0,o=n.length;r<o&&(e=n[r]);r++)i=Gt(e,t,i);else i=t?e.cssText:function(e){return function(e){return e.replace(Kt.mixinApply,"").replace(Kt.varApply,"")}(e=function(e){return e.replace(Kt.customProp,"").replace(Kt.mixinProp,"")}(e))}(e.cssText),i=i.trim(),i&&(i="  "+i+"\n")}return i&&(e.selector&&(n+=e.selector+" "+Xt+"\n"),n+=i,e.selector&&(n+=Wt+"\n\n")),n}const qt={STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1e3},Xt="{",Wt="}",Kt={comments:/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},Yt="--",Jt="@media",Zt="@",Qt=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gi,en=/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi,tn=/@media\s(.*)/,nn=new Set;function rn(e){const t=e.textContent;if(!nn.has(t)){nn.add(t);const e=document.createElement("style");e.setAttribute("shady-unscoped",""),e.textContent=t,document.head.appendChild(e)}}function on(e){return e.hasAttribute("shady-unscoped")}function an(e,t){return e?("string"==typeof e&&(e=Ut(e)),t&&ln(e,t),Gt(e,Ft)):""}function sn(e){return!e.__cssRules&&e.textContent&&(e.__cssRules=Ut(e.textContent)),e.__cssRules||null}function ln(e,t,n,i){if(!e)return;let r=!1,o=e.type;if(i&&o===qt.MEDIA_RULE){let t=e.selector.match(tn);t&&(window.matchMedia(t[1]).matches||(r=!0))}o===qt.STYLE_RULE?t(e):n&&o===qt.KEYFRAMES_RULE?n(e):o===qt.MIXIN_RULE&&(r=!0);let a=e.rules;if(a&&!r)for(let e,r=0,o=a.length;r<o&&(e=a[r]);r++)ln(e,t,n,i)}function cn(e,t){let n=e.indexOf("var(");if(-1===n)return t(e,"","","");let i=function(e,t){let n=0;for(let i=t,r=e.length;i<r;i++)if("("===e[i])n++;else if(")"===e[i]&&0==--n)return i;return-1}(e,n+3),r=e.substring(n+4,i),o=e.substring(0,n),a=cn(e.substring(i+1),t),s=r.indexOf(",");return-1===s?t(o,r.trim(),"",a):t(o,r.substring(0,s).trim(),r.substring(s+1).trim(),a)}window.ShadyDOM&&window.ShadyDOM.wrap;const dn="css-build";function hn(e){return""!==function(e){if(void 0!==Vt)return Vt;if(void 0===e.__cssBuild){const t=e.getAttribute(dn);if(t)e.__cssBuild=t;else{const t=function(e){const t="template"===e.localName?e.content.firstChild:e.firstChild;if(t instanceof Comment){const e=t.textContent.trim().split(":");if(e[0]===dn)return e[1]}return""}(e);""!==t&&function(e){const t="template"===e.localName?e.content.firstChild:e.firstChild;t.parentNode.removeChild(t)}(e),e.__cssBuild=t}}return e.__cssBuild||""}(e)}function pn(e,t){for(let n in t)null===n?e.style.removeProperty(n):e.style.setProperty(n,t[n])}function un(e,t){const n=window.getComputedStyle(e).getPropertyValue(t);return n?n.trim():""}const fn=/;\s*/m,gn=/^\s*(initial)|(inherit)\s*$/,mn=/\s*!important/,vn="_-_";class yn{constructor(){this._map={}}set(e,t){e=e.trim(),this._map[e]={properties:t,dependants:{}}}get(e){return e=e.trim(),this._map[e]||null}}let _n=null;class bn{constructor(){this._currentElement=null,this._measureElement=null,this._map=new yn}detectMixin(e){return function(e){const t=en.test(e)||Qt.test(e);return en.lastIndex=0,Qt.lastIndex=0,t}(e)}gatherStyles(e){const t=function(e){const t=[],n=e.querySelectorAll("style");for(let e=0;e<n.length;e++){const i=n[e];on(i)?Ht||(rn(i),i.parentNode.removeChild(i)):(t.push(i.textContent),i.parentNode.removeChild(i))}return t.join("").trim()}(e.content);if(t){const n=document.createElement("style");return n.textContent=t,e.content.insertBefore(n,e.content.firstChild),n}return null}transformTemplate(e,t){void 0===e._gatheredStyle&&(e._gatheredStyle=this.gatherStyles(e));const n=e._gatheredStyle;return n?this.transformStyle(n,t):null}transformStyle(e,t=""){let n=sn(e);return this.transformRules(n,t),e.textContent=an(n),n}transformCustomStyle(e){let t=sn(e);return ln(t,(e=>{":root"===e.selector&&(e.selector="html"),this.transformRule(e)})),e.textContent=an(t),t}transformRules(e,t){this._currentElement=t,ln(e,(e=>{this.transformRule(e)})),this._currentElement=null}transformRule(e){e.cssText=this.transformCssText(e.parsedCssText,e),":root"===e.selector&&(e.selector=":host > *")}transformCssText(e,t){return e=e.replace(Qt,((e,n,i,r)=>this._produceCssProperties(e,n,i,r,t))),this._consumeCssProperties(e,t)}_getInitialValueForProperty(e){return this._measureElement||(this._measureElement=document.createElement("meta"),this._measureElement.setAttribute("apply-shim-measure",""),this._measureElement.style.all="initial",document.head.appendChild(this._measureElement)),window.getComputedStyle(this._measureElement).getPropertyValue(e)}_fallbacksFromPreviousRules(e){let t=e;for(;t.parent;)t=t.parent;const n={};let i=!1;return ln(t,(t=>{i=i||t===e,i||t.selector===e.selector&&Object.assign(n,this._cssTextToMap(t.parsedCssText))})),n}_consumeCssProperties(e,t){let n=null;for(;n=en.exec(e);){let i=n[0],r=n[1],o=n.index,a=o+i.indexOf("@apply"),s=o+i.length,l=e.slice(0,a),c=e.slice(s),d=t?this._fallbacksFromPreviousRules(t):{};Object.assign(d,this._cssTextToMap(l));let h=this._atApplyToCssProperties(r,d);e=`${l}${h}${c}`,en.lastIndex=o+h.length}return e}_atApplyToCssProperties(e,t){e=e.replace(fn,"");let n=[],i=this._map.get(e);if(i||(this._map.set(e,{}),i=this._map.get(e)),i){let r,o,a;this._currentElement&&(i.dependants[this._currentElement]=!0);const s=i.properties;for(r in s)a=t&&t[r],o=[r,": var(",e,vn,r],a&&o.push(",",a.replace(mn,"")),o.push(")"),mn.test(s[r])&&o.push(" !important"),n.push(o.join(""))}return n.join("; ")}_replaceInitialOrInherit(e,t){let n=gn.exec(t);return n&&(t=n[1]?this._getInitialValueForProperty(e):"apply-shim-inherit"),t}_cssTextToMap(e,t=!1){let n,i,r=e.split(";"),o={};for(let e,a,s=0;s<r.length;s++)e=r[s],e&&(a=e.split(":"),a.length>1&&(n=a[0].trim(),i=a.slice(1).join(":"),t&&(i=this._replaceInitialOrInherit(n,i)),o[n]=i));return o}_invalidateMixinEntry(e){if(_n)for(let t in e.dependants)t!==this._currentElement&&_n(t)}_produceCssProperties(e,t,n,i,r){if(n&&cn(n,((e,t)=>{t&&this._map.get(t)&&(i=`@apply ${t};`)})),!i)return e;let o=this._consumeCssProperties(""+i,r),a=e.slice(0,e.indexOf("--")),s=this._cssTextToMap(o,!0),l=s,c=this._map.get(t),d=c&&c.properties;d?l=Object.assign(Object.create(d),s):this._map.set(t,l);let h,p,u=[],f=!1;for(h in l)p=s[h],void 0===p&&(p="initial"),d&&!(h in d)&&(f=!0),u.push(`${t}${vn}${h}: ${p}`);return f&&this._invalidateMixinEntry(c),c&&(c.properties=l),n&&(a=`${e};${a}`),`${a}${u.join("; ")};`}}bn.prototype.detectMixin=bn.prototype.detectMixin,bn.prototype.transformStyle=bn.prototype.transformStyle,bn.prototype.transformCustomStyle=bn.prototype.transformCustomStyle,bn.prototype.transformRules=bn.prototype.transformRules,bn.prototype.transformRule=bn.prototype.transformRule,bn.prototype.transformTemplate=bn.prototype.transformTemplate,bn.prototype._separator=vn,Object.defineProperty(bn.prototype,"invalidCallback",{get:()=>_n,set(e){_n=e}});const xn=bn,wn={},Sn="_applyShimCurrentVersion",En="_applyShimNextVersion",Cn="_applyShimValidatingVersion",zn=Promise.resolve();function kn(e){let t=wn[e];t&&function(e){e[Sn]=e[Sn]||0,e[Cn]=e[Cn]||0,e[En]=(e[En]||0)+1}(t)}function Mn(e){return e[Sn]===e[En]}let An,Tn=null,Nn=window.HTMLImports&&window.HTMLImports.whenReady||null;function In(e){requestAnimationFrame((function(){Nn?Nn(e):(Tn||(Tn=new Promise((e=>{An=e})),"complete"===document.readyState?An():document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&An()}))),Tn.then((function(){e&&e()})))}))}const On="__seenByShadyCSS",Ln="__shadyCSSCachedStyle";let Pn=null,Hn=null;class Rn{constructor(){this.customStyles=[],this.enqueued=!1,In((()=>{window.ShadyCSS.flushCustomStyles&&window.ShadyCSS.flushCustomStyles()}))}enqueueDocumentValidation(){!this.enqueued&&Hn&&(this.enqueued=!0,In(Hn))}addCustomStyle(e){e[On]||(e[On]=!0,this.customStyles.push(e),this.enqueueDocumentValidation())}getStyleForCustomStyle(e){if(e[Ln])return e[Ln];let t;return t=e.getStyle?e.getStyle():e,t}processStyles(){const e=this.customStyles;for(let t=0;t<e.length;t++){const n=e[t];if(n[Ln])continue;const i=this.getStyleForCustomStyle(n);if(i){const e=i.__appliedElement||i;Pn&&Pn(e),n[Ln]=e}}return e}}Rn.prototype.addCustomStyle=Rn.prototype.addCustomStyle,Rn.prototype.getStyleForCustomStyle=Rn.prototype.getStyleForCustomStyle,Rn.prototype.processStyles=Rn.prototype.processStyles,Object.defineProperties(Rn.prototype,{transformCallback:{get:()=>Pn,set(e){Pn=e}},validateCallback:{get:()=>Hn,set(e){let t=!1;Hn||(t=!0),Hn=e,t&&this.enqueueDocumentValidation()}}});const Vn=new xn;class Bn{constructor(){this.customStyleInterface=null,Vn.invalidCallback=kn}ensure(){this.customStyleInterface||window.ShadyCSS.CustomStyleInterface&&(this.customStyleInterface=window.ShadyCSS.CustomStyleInterface,this.customStyleInterface.transformCallback=e=>{Vn.transformCustomStyle(e)},this.customStyleInterface.validateCallback=()=>{requestAnimationFrame((()=>{this.customStyleInterface.enqueued&&this.flushCustomStyles()}))})}prepareTemplate(e,t){if(this.ensure(),hn(e))return;wn[t]=e;let n=Vn.transformTemplate(e,t);e._styleAst=n}flushCustomStyles(){if(this.ensure(),!this.customStyleInterface)return;let e=this.customStyleInterface.processStyles();if(this.customStyleInterface.enqueued){for(let t=0;t<e.length;t++){let n=e[t],i=this.customStyleInterface.getStyleForCustomStyle(n);i&&Vn.transformCustomStyle(i)}this.customStyleInterface.enqueued=!1}}styleSubtree(e,t){if(this.ensure(),t&&pn(e,t),e.shadowRoot){this.styleElement(e);let t=e.shadowRoot.children||e.shadowRoot.childNodes;for(let e=0;e<t.length;e++)this.styleSubtree(t[e])}else{let t=e.children||e.childNodes;for(let e=0;e<t.length;e++)this.styleSubtree(t[e])}}styleElement(e){this.ensure();let{is:t}=function(e){let t=e.localName,n="",i="";return t?t.indexOf("-")>-1?n=t:(i=t,n=e.getAttribute&&e.getAttribute("is")||""):(n=e.is,i=e.extends),{is:n,typeExtension:i}}(e),n=wn[t];if((!n||!hn(n))&&n&&!Mn(n)){(function(e){return!Mn(e)&&e[Cn]===e[En]})(n)||(this.prepareTemplate(n,t),function(e){e[Cn]=e[En],e._validating||(e._validating=!0,zn.then((function(){e[Sn]=e[En],e._validating=!1})))}(n));let i=e.shadowRoot;if(i){let e=i.querySelector("style");e&&(e.__cssRules=n._styleAst,e.textContent=an(n._styleAst))}}}styleDocument(e){this.ensure(),this.styleSubtree(document.body,e)}}if(!window.ShadyCSS||!window.ShadyCSS.ScopingShim){const e=new Bn;let t=window.ShadyCSS&&window.ShadyCSS.CustomStyleInterface;window.ShadyCSS={prepareTemplate(t,n,i){e.flushCustomStyles(),e.prepareTemplate(t,n)},prepareTemplateStyles(e,t,n){window.ShadyCSS.prepareTemplate(e,t,n)},prepareTemplateDom(e,t){},styleSubtree(t,n){e.flushCustomStyles(),e.styleSubtree(t,n)},styleElement(t){e.flushCustomStyles(),e.styleElement(t)},styleDocument(t){e.flushCustomStyles(),e.styleDocument(t)},getComputedStyleValue:(e,t)=>un(e,t),flushCustomStyles(){e.flushCustomStyles()},nativeCss:Ft,nativeShadow:Ht,cssBuild:Vt,disableRuntime:Dt},t&&(window.ShadyCSS.CustomStyleInterface=t)}window.ShadyCSS.ApplyShim=Vn;class Dn{constructor(){this._asyncModule=null,this._callback=null,this._timer=null}setConfig(e,t){this._asyncModule=e,this._callback=t,this._timer=this._asyncModule.run((()=>{this._timer=null,Fn.delete(this),this._callback()}))}cancel(){this.isActive()&&(this._cancelAsync(),Fn.delete(this))}_cancelAsync(){this.isActive()&&(this._asyncModule.cancel(this._timer),this._timer=null)}flush(){this.isActive()&&(this.cancel(),this._callback())}isActive(){return null!=this._timer}static debounce(e,t,n){return e instanceof Dn?e._cancelAsync():e=new Dn,e.setConfig(t,n),e}}let Fn=new Set;const jn=function(e){Fn.add(e)},Un=function(){const e=Boolean(Fn.size);return Fn.forEach((e=>{try{e.flush()}catch(e){setTimeout((()=>{throw e}))}})),e};let $n="string"==typeof document.head.style.touchAction,Gn="__polymerGestures",qn="__polymerGesturesHandled",Xn="__polymerGesturesTouchAction",Wn=["mousedown","mousemove","mouseup","click"],Kn=[0,1,4,2],Yn=function(){try{return 1===new MouseEvent("test",{buttons:1}).buttons}catch(e){return!1}}();function Jn(e){return Wn.indexOf(e)>-1}let Zn=!1;function Qn(e){if(!Jn(e)&&"touchend"!==e)return $n&&Zn&&z?{passive:!0}:void 0}!function(){try{let e=Object.defineProperty({},"passive",{get(){Zn=!0}});window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(e){}}();let ei=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);const ti=[],ni={button:!0,input:!0,keygen:!0,meter:!0,output:!0,textarea:!0,progress:!0,select:!0},ii={button:!0,command:!0,fieldset:!0,input:!0,keygen:!0,optgroup:!0,option:!0,select:!0,textarea:!0};function ri(e){let t=Array.prototype.slice.call(e.labels||[]);if(!t.length){t=[];try{let n=e.getRootNode();if(e.id){let i=n.querySelectorAll(`label[for = '${e.id}']`);for(let e=0;e<i.length;e++)t.push(i[e])}}catch(e){}}return t}let oi=function(e){let t=e.sourceCapabilities;var n;if((!t||t.firesTouchEvents)&&(e[qn]={skip:!0},"click"===e.type)){let t=!1,i=hi(e);for(let e=0;e<i.length;e++){if(i[e].nodeType===Node.ELEMENT_NODE)if("label"===i[e].localName)ti.push(i[e]);else if(n=i[e],ni[n.localName]){let n=ri(i[e]);for(let e=0;e<n.length;e++)t=t||ti.indexOf(n[e])>-1}if(i[e]===li.mouse.target)return}if(t)return;e.preventDefault(),e.stopPropagation()}};function ai(e){let t=ei?["click"]:Wn;for(let n,i=0;i<t.length;i++)n=t[i],e?(ti.length=0,document.addEventListener(n,oi,!0)):document.removeEventListener(n,oi,!0)}function si(e){let t=e.type;if(!Jn(t))return!1;if("mousemove"===t){let t=void 0===e.buttons?1:e.buttons;return e instanceof window.MouseEvent&&!Yn&&(t=Kn[e.which]||0),Boolean(1&t)}return 0===(void 0===e.button?0:e.button)}let li={mouse:{target:null,mouseIgnoreJob:null},touch:{x:0,y:0,id:-1,scrollDecided:!1}};function ci(e,t,n){e.movefn=t,e.upfn=n,document.addEventListener("mousemove",t),document.addEventListener("mouseup",n)}function di(e){document.removeEventListener("mousemove",e.movefn),document.removeEventListener("mouseup",e.upfn),e.movefn=null,e.upfn=null}document.addEventListener("touchend",(function(e){li.mouse.mouseIgnoreJob||ai(!0),li.mouse.target=hi(e)[0],li.mouse.mouseIgnoreJob=Dn.debounce(li.mouse.mouseIgnoreJob,Se.after(2500),(function(){ai(),li.mouse.target=null,li.mouse.mouseIgnoreJob=null}))}),!!Zn&&{passive:!0});const hi=window.ShadyDOM&&window.ShadyDOM.noPatch?window.ShadyDOM.composedPath:e=>e.composedPath&&e.composedPath()||[],pi={},ui=[];function fi(e){const t=hi(e);return t.length>0?t[0]:e.target}function gi(e){let t,n=e.type,i=e.currentTarget[Gn];if(!i)return;let r=i[n];if(r){if(!e[qn]&&(e[qn]={},"touch"===n.slice(0,5))){let t=e.changedTouches[0];if("touchstart"===n&&1===e.touches.length&&(li.touch.id=t.identifier),li.touch.id!==t.identifier)return;$n||"touchstart"!==n&&"touchmove"!==n||function(e){let t=e.changedTouches[0],n=e.type;if("touchstart"===n)li.touch.x=t.clientX,li.touch.y=t.clientY,li.touch.scrollDecided=!1;else if("touchmove"===n){if(li.touch.scrollDecided)return;li.touch.scrollDecided=!0;let n=function(e){let t="auto",n=hi(e);for(let e,i=0;i<n.length;i++)if(e=n[i],e[Xn]){t=e[Xn];break}return t}(e),i=!1,r=Math.abs(li.touch.x-t.clientX),o=Math.abs(li.touch.y-t.clientY);e.cancelable&&("none"===n?i=!0:"pan-x"===n?i=o>r:"pan-y"===n&&(i=r>o)),i?e.preventDefault():bi("track")}}(e)}if(t=e[qn],!t.skip){for(let n,i=0;i<ui.length;i++)n=ui[i],r[n.name]&&!t[n.name]&&n.flow&&n.flow.start.indexOf(e.type)>-1&&n.reset&&n.reset();for(let i,o=0;o<ui.length;o++)i=ui[o],r[i.name]&&!t[i.name]&&(t[i.name]=!0,i[n](e))}}}function mi(e,t,n){return!!pi[t]&&(function(e,t,n){let i=pi[t],r=i.deps,o=i.name,a=e[Gn];a||(e[Gn]=a={});for(let t,n,i=0;i<r.length;i++)t=r[i],ei&&Jn(t)&&"click"!==t||(n=a[t],n||(a[t]=n={_count:0}),0===n._count&&e.addEventListener(t,gi,Qn(t)),n[o]=(n[o]||0)+1,n._count=(n._count||0)+1);e.addEventListener(t,n),i.touchAction&&yi(e,i.touchAction)}(e,t,n),!0)}function vi(e){ui.push(e);for(let t=0;t<e.emits.length;t++)pi[e.emits[t]]=e}function yi(e,t){$n&&e instanceof HTMLElement&&ze.run((()=>{e.style.touchAction=t})),e[Xn]=t}function _i(e,t,n){let i=new Event(t,{bubbles:!0,cancelable:!0,composed:!0});if(i.detail=n,te(e).dispatchEvent(i),i.defaultPrevented){let e=n.preventer||n.sourceEvent;e&&e.preventDefault&&e.preventDefault()}}function bi(e){let t=function(e){for(let t,n=0;n<ui.length;n++){t=ui[n];for(let n,i=0;i<t.emits.length;i++)if(n=t.emits[i],n===e)return t}return null}(e);t.info&&(t.info.prevent=!0)}function xi(e,t,n,i){t&&_i(t,e,{x:n.clientX,y:n.clientY,sourceEvent:n,preventer:i,prevent:function(e){return bi(e)}})}function wi(e,t,n){if(e.prevent)return!1;if(e.started)return!0;let i=Math.abs(e.x-t),r=Math.abs(e.y-n);return i>=5||r>=5}function Si(e,t,n){if(!t)return;let i,r=e.moves[e.moves.length-2],o=e.moves[e.moves.length-1],a=o.x-e.x,s=o.y-e.y,l=0;r&&(i=o.x-r.x,l=o.y-r.y),_i(t,"track",{state:e.state,x:n.clientX,y:n.clientY,dx:a,dy:s,ddx:i,ddy:l,sourceEvent:n,hover:function(){return function(e,t){let n=document.elementFromPoint(e,t),i=n;for(;i&&i.shadowRoot&&!window.ShadyDOM;){let r=i;if(i=i.shadowRoot.elementFromPoint(e,t),r===i)break;i&&(n=i)}return n}(n.clientX,n.clientY)}})}function Ei(e,t,n){let i=Math.abs(t.clientX-e.x),r=Math.abs(t.clientY-e.y),o=fi(n||t);!o||ii[o.localName]&&o.hasAttribute("disabled")||(isNaN(i)||isNaN(r)||i<=25&&r<=25||function(e){if("click"===e.type){if(0===e.detail)return!0;let t=fi(e);if(!t.nodeType||t.nodeType!==Node.ELEMENT_NODE)return!0;let n=t.getBoundingClientRect(),i=e.pageX,r=e.pageY;return!(i>=n.left&&i<=n.right&&r>=n.top&&r<=n.bottom)}return!1}(t))&&(e.prevent||_i(o,"tap",{x:t.clientX,y:t.clientY,sourceEvent:t,preventer:n}))}vi({name:"downup",deps:["mousedown","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["down","up"],info:{movefn:null,upfn:null},reset:function(){di(this.info)},mousedown:function(e){if(!si(e))return;let t=fi(e),n=this;ci(this.info,(function(e){si(e)||(xi("up",t,e),di(n.info))}),(function(e){si(e)&&xi("up",t,e),di(n.info)})),xi("down",t,e)},touchstart:function(e){xi("down",fi(e),e.changedTouches[0],e)},touchend:function(e){xi("up",fi(e),e.changedTouches[0],e)}}),vi({name:"track",touchAction:"none",deps:["mousedown","touchstart","touchmove","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["track"],info:{x:0,y:0,state:"start",started:!1,moves:[],addMove:function(e){this.moves.length>2&&this.moves.shift(),this.moves.push(e)},movefn:null,upfn:null,prevent:!1},reset:function(){this.info.state="start",this.info.started=!1,this.info.moves=[],this.info.x=0,this.info.y=0,this.info.prevent=!1,di(this.info)},mousedown:function(e){if(!si(e))return;let t=fi(e),n=this,i=function(e){let i=e.clientX,r=e.clientY;wi(n.info,i,r)&&(n.info.state=n.info.started?"mouseup"===e.type?"end":"track":"start","start"===n.info.state&&bi("tap"),n.info.addMove({x:i,y:r}),si(e)||(n.info.state="end",di(n.info)),t&&Si(n.info,t,e),n.info.started=!0)};ci(this.info,i,(function(e){n.info.started&&i(e),di(n.info)})),this.info.x=e.clientX,this.info.y=e.clientY},touchstart:function(e){let t=e.changedTouches[0];this.info.x=t.clientX,this.info.y=t.clientY},touchmove:function(e){let t=fi(e),n=e.changedTouches[0],i=n.clientX,r=n.clientY;wi(this.info,i,r)&&("start"===this.info.state&&bi("tap"),this.info.addMove({x:i,y:r}),Si(this.info,t,n),this.info.state="track",this.info.started=!0)},touchend:function(e){let t=fi(e),n=e.changedTouches[0];this.info.started&&(this.info.state="end",this.info.addMove({x:n.clientX,y:n.clientY}),Si(this.info,t,n))}}),vi({name:"tap",deps:["mousedown","click","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["click","touchend"]},emits:["tap"],info:{x:NaN,y:NaN,prevent:!1},reset:function(){this.info.x=NaN,this.info.y=NaN,this.info.prevent=!1},mousedown:function(e){si(e)&&(this.info.x=e.clientX,this.info.y=e.clientY)},click:function(e){si(e)&&Ei(this.info,e)},touchstart:function(e){const t=e.changedTouches[0];this.info.x=t.clientX,this.info.y=t.clientY},touchend:function(e){Ei(this.info,e.changedTouches[0],e)}});const Ci=fi,zi=F((e=>class extends e{_addEventListenerToNode(e,t,n){mi(e,t,n)||super._addEventListenerToNode(e,t,n)}_removeEventListenerFromNode(e,t,n){(function(e,t,n){return!!pi[t]&&(function(e,t,n){let i=pi[t],r=i.deps,o=i.name,a=e[Gn];if(a)for(let t,n,i=0;i<r.length;i++)t=r[i],n=a[t],n&&n[o]&&(n[o]=(n[o]||1)-1,n._count=(n._count||1)-1,0===n._count&&e.removeEventListener(t,gi,Qn(t)));e.removeEventListener(t,n)}(e,t,n),!0)})(e,t,n)||super._removeEventListenerFromNode(e,t,n)}})),ki=/:host\(:dir\((ltr|rtl)\)\)/g,Mi=/([\s\w-#\.\[\]\*]*):dir\((ltr|rtl)\)/g,Ai=/:dir\((?:ltr|rtl)\)/,Ti=Boolean(window.ShadyDOM&&window.ShadyDOM.inUse),Ni=[];let Ii=null,Oi="";function Li(){Oi=document.documentElement.getAttribute("dir")}function Pi(e){e.__autoDirOptOut||e.setAttribute("dir",Oi)}function Hi(){Li(),Oi=document.documentElement.getAttribute("dir");for(let e=0;e<Ni.length;e++)Pi(Ni[e])}const Ri=F((e=>{Ti||Ii||(Li(),Ii=new MutationObserver(Hi),Ii.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}));const t=Ie(e);class n extends t{static _processStyleText(e,n){return e=t._processStyleText.call(this,e,n),!Ti&&Ai.test(e)&&(e=this._replaceDirInCssText(e),this.__activateDir=!0),e}static _replaceDirInCssText(e){let t=e;return t=t.replace(ki,':host([dir="$1"])'),t=t.replace(Mi,':host([dir="$2"]) $1'),t}constructor(){super(),this.__autoDirOptOut=!1}ready(){super.ready(),this.__autoDirOptOut=this.hasAttribute("dir")}connectedCallback(){t.prototype.connectedCallback&&super.connectedCallback(),this.constructor.__activateDir&&(Ii&&Ii.takeRecords().length&&Hi(),Ni.push(this),Pi(this))}disconnectedCallback(){if(t.prototype.disconnectedCallback&&super.disconnectedCallback(),this.constructor.__activateDir){const e=Ni.indexOf(this);e>-1&&Ni.splice(e,1)}}}return n.__activateDir=!1,n}));let Vi=!1,Bi=[],Di=[];function Fi(){Vi=!0,requestAnimationFrame((function(){Vi=!1,function(e){for(;e.length;)ji(e.shift())}(Bi),setTimeout((function(){!function(e){for(let t=0,n=e.length;t<n;t++)ji(e.shift())}(Di)}))}))}function ji(e){const t=e[0],n=e[1],i=e[2];try{n.apply(t,i)}catch(e){setTimeout((()=>{throw e}))}}function Ui(e,t,n){Vi||Fi(),Di.push([e,t,n])}function $i(){document.body.removeAttribute("unresolved")}function Gi(e,t,n){return{index:e,removed:t,addedCount:n}}function qi(e,t){return function(e,t,n,i,r,o){let a,s=0,l=0,c=Math.min(n-t,o-r);if(0==t&&0==r&&(s=function(e,t,n){for(let i=0;i<n;i++)if(!Xi(e[i],t[i]))return i;return n}(e,i,c)),n==e.length&&o==i.length&&(l=function(e,t,n){let i=e.length,r=t.length,o=0;for(;o<n&&Xi(e[--i],t[--r]);)o++;return o}(e,i,c-s)),r+=s,o-=l,(n-=l)-(t+=s)==0&&o-r==0)return[];if(t==n){for(a=Gi(t,[],0);r<o;)a.removed.push(i[r++]);return[a]}if(r==o)return[Gi(t,[],n-t)];let d=function(e){let t=e.length-1,n=e[0].length-1,i=e[t][n],r=[];for(;t>0||n>0;){if(0==t){r.push(2),n--;continue}if(0==n){r.push(3),t--;continue}let o,a=e[t-1][n-1],s=e[t-1][n],l=e[t][n-1];o=s<l?s<a?s:a:l<a?l:a,o==a?(a==i?r.push(0):(r.push(1),i=a),t--,n--):o==s?(r.push(3),t--,i=s):(r.push(2),n--,i=l)}return r.reverse(),r}(function(e,t,n,i,r,o){let a=o-r+1,s=n-t+1,l=new Array(a);for(let e=0;e<a;e++)l[e]=new Array(s),l[e][0]=e;for(let e=0;e<s;e++)l[0][e]=e;for(let n=1;n<a;n++)for(let o=1;o<s;o++)if(Xi(e[t+o-1],i[r+n-1]))l[n][o]=l[n-1][o-1];else{let e=l[n-1][o]+1,t=l[n][o-1]+1;l[n][o]=e<t?e:t}return l}(e,t,n,i,r,o));a=void 0;let h=[],p=t,u=r;for(let e=0;e<d.length;e++)switch(d[e]){case 0:a&&(h.push(a),a=void 0),p++,u++;break;case 1:a||(a=Gi(p,[],0)),a.addedCount++,p++,a.removed.push(i[u]),u++;break;case 2:a||(a=Gi(p,[],0)),a.addedCount++,p++;break;case 3:a||(a=Gi(p,[],0)),a.removed.push(i[u]),u++}return a&&h.push(a),h}(e,0,e.length,t,0,t.length)}function Xi(e,t){return e===t}function Wi(e){return"slot"===e.localName}"interactive"===document.readyState||"complete"===document.readyState?$i():window.addEventListener("DOMContentLoaded",$i);let Ki=class{static getFlattenedNodes(e){const t=te(e);return Wi(e)?t.assignedNodes({flatten:!0}):Array.from(t.childNodes).map((e=>Wi(e)?te(e).assignedNodes({flatten:!0}):[e])).reduce(((e,t)=>e.concat(t)),[])}constructor(e,t){this._shadyChildrenObserver=null,this._nativeChildrenObserver=null,this._connected=!1,this._target=e,this.callback=t,this._effectiveNodes=[],this._observer=null,this._scheduled=!1,this._boundSchedule=()=>{this._schedule()},this.connect(),this._schedule()}connect(){Wi(this._target)?this._listenSlots([this._target]):te(this._target).children&&(this._listenSlots(te(this._target).children),window.ShadyDOM?this._shadyChildrenObserver=window.ShadyDOM.observeChildren(this._target,(e=>{this._processMutations(e)})):(this._nativeChildrenObserver=new MutationObserver((e=>{this._processMutations(e)})),this._nativeChildrenObserver.observe(this._target,{childList:!0}))),this._connected=!0}disconnect(){Wi(this._target)?this._unlistenSlots([this._target]):te(this._target).children&&(this._unlistenSlots(te(this._target).children),window.ShadyDOM&&this._shadyChildrenObserver?(window.ShadyDOM.unobserveChildren(this._shadyChildrenObserver),this._shadyChildrenObserver=null):this._nativeChildrenObserver&&(this._nativeChildrenObserver.disconnect(),this._nativeChildrenObserver=null)),this._connected=!1}_schedule(){this._scheduled||(this._scheduled=!0,ze.run((()=>this.flush())))}_processMutations(e){this._processSlotMutations(e),this.flush()}_processSlotMutations(e){if(e)for(let t=0;t<e.length;t++){let n=e[t];n.addedNodes&&this._listenSlots(n.addedNodes),n.removedNodes&&this._unlistenSlots(n.removedNodes)}}flush(){if(!this._connected)return!1;window.ShadyDOM&&ShadyDOM.flush(),this._nativeChildrenObserver?this._processSlotMutations(this._nativeChildrenObserver.takeRecords()):this._shadyChildrenObserver&&this._processSlotMutations(this._shadyChildrenObserver.takeRecords()),this._scheduled=!1;let e={target:this._target,addedNodes:[],removedNodes:[]},t=this.constructor.getFlattenedNodes(this._target),n=qi(t,this._effectiveNodes);for(let t,i=0;i<n.length&&(t=n[i]);i++)for(let n,i=0;i<t.removed.length&&(n=t.removed[i]);i++)e.removedNodes.push(n);for(let i,r=0;r<n.length&&(i=n[r]);r++)for(let n=i.index;n<i.index+i.addedCount;n++)e.addedNodes.push(t[n]);this._effectiveNodes=t;let i=!1;return(e.addedNodes.length||e.removedNodes.length)&&(i=!0,this.callback.call(this._target,e)),i}_listenSlots(e){for(let t=0;t<e.length;t++){let n=e[t];Wi(n)&&n.addEventListener("slotchange",this._boundSchedule)}}_unlistenSlots(e){for(let t=0;t<e.length;t++){let n=e[t];Wi(n)&&n.removeEventListener("slotchange",this._boundSchedule)}}};const Yi=function(){let e,t;do{e=window.ShadyDOM&&ShadyDOM.flush(),window.ShadyCSS&&window.ShadyCSS.ScopingShim&&window.ShadyCSS.ScopingShim.flush(),t=Un()}while(e||t)},Ji=Element.prototype,Zi=Ji.matches||Ji.matchesSelector||Ji.mozMatchesSelector||Ji.msMatchesSelector||Ji.oMatchesSelector||Ji.webkitMatchesSelector,Qi=function(e,t){return Zi.call(e,t)};class er{constructor(e){window.ShadyDOM&&window.ShadyDOM.inUse&&window.ShadyDOM.patch(e),this.node=e}observeNodes(e){return new Ki(this.node,e)}unobserveNodes(e){e.disconnect()}notifyObserver(){}deepContains(e){if(te(this.node).contains(e))return!0;let t=e,n=e.ownerDocument;for(;t&&t!==n&&t!==this.node;)t=te(t).parentNode||te(t).host;return t===this.node}getOwnerRoot(){return te(this.node).getRootNode()}getDistributedNodes(){return"slot"===this.node.localName?te(this.node).assignedNodes({flatten:!0}):[]}getDestinationInsertionPoints(){let e=[],t=te(this.node).assignedSlot;for(;t;)e.push(t),t=te(t).assignedSlot;return e}importNode(e,t){let n=this.node instanceof Document?this.node:this.node.ownerDocument;return te(n).importNode(e,t)}getEffectiveChildNodes(){return Ki.getFlattenedNodes(this.node)}queryDistributedElements(e){let t=this.getEffectiveChildNodes(),n=[];for(let i,r=0,o=t.length;r<o&&(i=t[r]);r++)i.nodeType===Node.ELEMENT_NODE&&Qi(i,e)&&n.push(i);return n}get activeElement(){let e=this.node;return void 0!==e._activeElement?e._activeElement:e.activeElement}}function tr(e,t){for(let n=0;n<t.length;n++){let i=t[n];Object.defineProperty(e,i,{get:function(){return this.node[i]},configurable:!0})}}class nr{constructor(e){this.event=e}get rootTarget(){return this.path[0]}get localTarget(){return this.event.target}get path(){return this.event.composedPath()}}er.prototype.cloneNode,er.prototype.appendChild,er.prototype.insertBefore,er.prototype.removeChild,er.prototype.replaceChild,er.prototype.setAttribute,er.prototype.removeAttribute,er.prototype.querySelector,er.prototype.querySelectorAll,er.prototype.parentNode,er.prototype.firstChild,er.prototype.lastChild,er.prototype.nextSibling,er.prototype.previousSibling,er.prototype.firstElementChild,er.prototype.lastElementChild,er.prototype.nextElementSibling,er.prototype.previousElementSibling,er.prototype.childNodes,er.prototype.children,er.prototype.classList,er.prototype.textContent,er.prototype.innerHTML;let ir=er;if(window.ShadyDOM&&window.ShadyDOM.inUse&&window.ShadyDOM.noPatch&&window.ShadyDOM.Wrapper){class e extends window.ShadyDOM.Wrapper{}Object.getOwnPropertyNames(er.prototype).forEach((t=>{"activeElement"!=t&&(e.prototype[t]=er.prototype[t])})),tr(e.prototype,["classList"]),ir=e,Object.defineProperties(nr.prototype,{localTarget:{get(){const e=this.event.currentTarget,t=e&&rr(e).getOwnerRoot(),n=this.path;for(let e=0;e<n.length;e++){const i=n[e];if(rr(i).getOwnerRoot()===t)return i}},configurable:!0},path:{get(){return window.ShadyDOM.composedPath(this.event)},configurable:!0}})}else!function(e,t){for(let n=0;n<t.length;n++){let i=t[n];e[i]=function(){return this.node[i].apply(this.node,arguments)}}}(er.prototype,["cloneNode","appendChild","insertBefore","removeChild","replaceChild","setAttribute","removeAttribute","querySelector","querySelectorAll","attachShadow"]),tr(er.prototype,["parentNode","firstChild","lastChild","nextSibling","previousSibling","firstElementChild","lastElementChild","nextElementSibling","previousElementSibling","childNodes","children","classList","shadowRoot"]),function(e,t){for(let n=0;n<t.length;n++){let i=t[n];Object.defineProperty(e,i,{get:function(){return this.node[i]},set:function(e){this.node[i]=e},configurable:!0})}}(er.prototype,["textContent","innerHTML","className"]);const rr=function(e){if((e=e||document)instanceof ir)return e;if(e instanceof nr)return e;let t=e.__domApi;return t||(t=e instanceof Event?new nr(e):new ir(e),e.__domApi=t),t},or=window.ShadyDOM,ar=window.ShadyCSS;function sr(e,t){return te(e).getRootNode()===t}const lr="disable-upgrade",cr=e=>{for(;e;){const t=Object.getOwnPropertyDescriptor(e,"observedAttributes");if(t)return t.get;e=Object.getPrototypeOf(e.prototype).constructor}return()=>[]},dr=(F((e=>{const t=At(e);let n=cr(t);return class extends t{constructor(){super(),this.__isUpgradeDisabled}static get observedAttributes(){return n.call(this).concat(lr)}_initializeProperties(){this.hasAttribute(lr)?this.__isUpgradeDisabled=!0:super._initializeProperties()}_enableProperties(){this.__isUpgradeDisabled||super._enableProperties()}_canApplyPropertyDefault(e){return super._canApplyPropertyDefault(e)&&!(this.__isUpgradeDisabled&&this._isPropertyPending(e))}attributeChangedCallback(e,t,n,i){e==lr?this.__isUpgradeDisabled&&null==n&&(super._initializeProperties(),this.__isUpgradeDisabled=!1,te(this).isConnected&&super.connectedCallback()):super.attributeChangedCallback(e,t,n,i)}connectedCallback(){this.__isUpgradeDisabled||super.connectedCallback()}disconnectedCallback(){this.__isUpgradeDisabled||super.disconnectedCallback()}}})),"disable-upgrade");let hr=window.ShadyCSS;const pr=F((e=>{const t=zi(At(e)),n=Mt?t:Ri(t),i=cr(n),r={x:"pan-x",y:"pan-y",none:"none",all:"auto"};class o extends n{constructor(){super(),this.isAttached,this.__boundListeners,this._debouncers,this.__isUpgradeDisabled,this.__needsAttributesAtConnected,this._legacyForceObservedAttributes}static get importMeta(){return this.prototype.importMeta}created(){}__attributeReaction(e,t,n){(this.__dataAttributes&&this.__dataAttributes[e]||e===dr)&&this.attributeChangedCallback(e,t,n,null)}setAttribute(e,t){if(R&&!this._legacyForceObservedAttributes){const n=this.getAttribute(e);super.setAttribute(e,t),this.__attributeReaction(e,n,String(t))}else super.setAttribute(e,t)}removeAttribute(e){if(R&&!this._legacyForceObservedAttributes){const t=this.getAttribute(e);super.removeAttribute(e),this.__attributeReaction(e,t,null)}else super.removeAttribute(e)}static get observedAttributes(){return R&&!this.prototype._legacyForceObservedAttributes?(this.hasOwnProperty(JSCompiler_renameProperty("__observedAttributes",this))||(this.__observedAttributes=[],zt(this.prototype)),this.__observedAttributes):i.call(this).concat(dr)}_enableProperties(){this.__isUpgradeDisabled||super._enableProperties()}_canApplyPropertyDefault(e){return super._canApplyPropertyDefault(e)&&!(this.__isUpgradeDisabled&&this._isPropertyPending(e))}connectedCallback(){this.__needsAttributesAtConnected&&this._takeAttributes(),this.__isUpgradeDisabled||(super.connectedCallback(),this.isAttached=!0,this.attached())}attached(){}disconnectedCallback(){this.__isUpgradeDisabled||(super.disconnectedCallback(),this.isAttached=!1,this.detached())}detached(){}attributeChangedCallback(e,t,n,i){t!==n&&(e==dr?this.__isUpgradeDisabled&&null==n&&(this._initializeProperties(),this.__isUpgradeDisabled=!1,te(this).isConnected&&this.connectedCallback()):(super.attributeChangedCallback(e,t,n,i),this.attributeChanged(e,t,n)))}attributeChanged(e,t,n){}_initializeProperties(){if(A&&this.hasAttribute(dr))this.__isUpgradeDisabled=!0;else{let e=Object.getPrototypeOf(this);e.hasOwnProperty(JSCompiler_renameProperty("__hasRegisterFinished",e))||(this._registered(),e.__hasRegisterFinished=!0),super._initializeProperties(),this.root=this,this.created(),R&&!this._legacyForceObservedAttributes&&(this.hasAttributes()?this._takeAttributes():this.parentNode||(this.__needsAttributesAtConnected=!0)),this._applyListeners()}}_takeAttributes(){const e=this.attributes;for(let t=0,n=e.length;t<n;t++){const n=e[t];this.__attributeReaction(n.name,null,n.value)}}_registered(){}ready(){this._ensureAttributes(),super.ready()}_ensureAttributes(){}_applyListeners(){}serialize(e){return this._serializeValue(e)}deserialize(e,t){return this._deserializeValue(e,t)}reflectPropertyToAttribute(e,t,n){this._propertyToAttribute(e,t,n)}serializeValueToAttribute(e,t,n){this._valueToNodeAttribute(n||this,e,t)}extend(e,t){if(!e||!t)return e||t;let n=Object.getOwnPropertyNames(t);for(let i,r=0;r<n.length&&(i=n[r]);r++){let n=Object.getOwnPropertyDescriptor(t,i);n&&Object.defineProperty(e,i,n)}return e}mixin(e,t){for(let n in t)e[n]=t[n];return e}chainObject(e,t){return e&&t&&e!==t&&(e.__proto__=t),e}instanceTemplate(e){let t=this.constructor._contentForTemplate(e);return document.importNode(t,!0)}fire(e,t,n){n=n||{},t=null==t?{}:t;let i=new Event(e,{bubbles:void 0===n.bubbles||n.bubbles,cancelable:Boolean(n.cancelable),composed:void 0===n.composed||n.composed});i.detail=t;let r=n.node||this;return te(r).dispatchEvent(i),i}listen(e,t,n){e=e||this;let i=this.__boundListeners||(this.__boundListeners=new WeakMap),r=i.get(e);r||(r={},i.set(e,r));let o=t+n;r[o]||(r[o]=this._addMethodEventListenerToNode(e,t,n,this))}unlisten(e,t,n){e=e||this;let i=this.__boundListeners&&this.__boundListeners.get(e),r=t+n,o=i&&i[r];o&&(this._removeEventListenerFromNode(e,t,o),i[r]=null)}setScrollDirection(e,t){yi(t||this,r[e]||"auto")}$$(e){return this.root.querySelector(e)}get domHost(){let e=te(this).getRootNode();return e instanceof DocumentFragment?e.host:e}distributeContent(){const e=rr(this);window.ShadyDOM&&e.shadowRoot&&ShadyDOM.flush()}getEffectiveChildNodes(){return rr(this).getEffectiveChildNodes()}queryDistributedElements(e){return rr(this).queryDistributedElements(e)}getEffectiveChildren(){return this.getEffectiveChildNodes().filter((function(e){return e.nodeType===Node.ELEMENT_NODE}))}getEffectiveTextContent(){let e=this.getEffectiveChildNodes(),t=[];for(let n,i=0;n=e[i];i++)n.nodeType!==Node.COMMENT_NODE&&t.push(n.textContent);return t.join("")}queryEffectiveChildren(e){let t=this.queryDistributedElements(e);return t&&t[0]}queryAllEffectiveChildren(e){return this.queryDistributedElements(e)}getContentChildNodes(e){let t=this.root.querySelector(e||"slot");return t?rr(t).getDistributedNodes():[]}getContentChildren(e){return this.getContentChildNodes(e).filter((function(e){return e.nodeType===Node.ELEMENT_NODE}))}isLightDescendant(e){const t=this;return t!==e&&te(t).contains(e)&&te(t).getRootNode()===te(e).getRootNode()}isLocalDescendant(e){return this.root===te(e).getRootNode()}scopeSubtree(e,t=!1){return function(e,t=!1){if(!or||!ar)return null;if(!or.handlesDynamicScoping)return null;const n=ar.ScopingShim;if(!n)return null;const i=n.scopeForNode(e),r=te(e).getRootNode(),o=e=>{if(!sr(e,r))return;const t=Array.from(or.nativeMethods.querySelectorAll.call(e,"*"));t.push(e);for(let e=0;e<t.length;e++){const o=t[e];if(!sr(o,r))continue;const a=n.currentScopeForNode(o);a!==i&&(""!==a&&n.unscopeNode(o,a),n.scopeNode(o,i))}};if(o(e),t){const t=new MutationObserver((e=>{for(let t=0;t<e.length;t++){const n=e[t];for(let e=0;e<n.addedNodes.length;e++){const t=n.addedNodes[e];t.nodeType===Node.ELEMENT_NODE&&o(t)}}}));return t.observe(e,{childList:!0,subtree:!0}),t}return null}(e,t)}getComputedStyleValue(e){return hr.getComputedStyleValue(this,e)}debounce(e,t,n){return this._debouncers=this._debouncers||{},this._debouncers[e]=Dn.debounce(this._debouncers[e],n>0?Se.after(n):ze,t.bind(this))}isDebouncerActive(e){this._debouncers=this._debouncers||{};let t=this._debouncers[e];return!(!t||!t.isActive())}flushDebouncer(e){this._debouncers=this._debouncers||{};let t=this._debouncers[e];t&&t.flush()}cancelDebouncer(e){this._debouncers=this._debouncers||{};let t=this._debouncers[e];t&&t.cancel()}async(e,t){return t>0?Se.run(e.bind(this),t):~ze.run(e.bind(this))}cancelAsync(e){e<0?ze.cancel(~e):Se.cancel(e)}create(e,t){let n=document.createElement(e);if(t)if(n.setProperties)n.setProperties(t);else for(let e in t)n[e]=t[e];return n}elementMatches(e,t){return Qi(t||this,e)}toggleAttribute(e,t){let n=this;return 3===arguments.length&&(n=arguments[2]),1==arguments.length&&(t=!n.hasAttribute(e)),t?(te(n).setAttribute(e,""),!0):(te(n).removeAttribute(e),!1)}toggleClass(e,t,n){n=n||this,1==arguments.length&&(t=!n.classList.contains(e)),t?n.classList.add(e):n.classList.remove(e)}transform(e,t){(t=t||this).style.webkitTransform=e,t.style.transform=e}translate3d(e,t,n,i){i=i||this,this.transform("translate3d("+e+","+t+","+n+")",i)}arrayDelete(e,t){let n;if(Array.isArray(e)){if(n=e.indexOf(t),n>=0)return e.splice(n,1)}else if(n=de(this,e).indexOf(t),n>=0)return this.splice(e,n,1);return null}_logger(e,t){switch(Array.isArray(t)&&1===t.length&&Array.isArray(t[0])&&(t=t[0]),e){case"log":case"warn":case"error":console[e](...t)}}_log(...e){this._logger("log",e)}_warn(...e){this._logger("warn",e)}_error(...e){this._logger("error",e)}_logf(e,...t){return["[%s::%s]",this.is,e,...t]}}return o.prototype.is="",o})),ur={attached:!0,detached:!0,ready:!0,created:!0,beforeRegister:!0,registered:!0,attributeChanged:!0,listeners:!0,hostAttributes:!0},fr={attached:!0,detached:!0,ready:!0,created:!0,beforeRegister:!0,registered:!0,attributeChanged:!0,behaviors:!0,_noAccessors:!0},gr=Object.assign({listeners:!0,hostAttributes:!0,properties:!0,observers:!0},fr);function mr(e,t,n,i){!function(e,t,n){const i=e._noAccessors,r=Object.getOwnPropertyNames(e);for(let o=0;o<r.length;o++){let a=r[o];if(!(a in n))if(i)t[a]=e[a];else{let n=Object.getOwnPropertyDescriptor(e,a);n&&(n.configurable=!0,Object.defineProperty(t,a,n))}}}(t,e,i);for(let e in ur)t[e]&&(n[e]=n[e]||[],n[e].push(t[e]))}function vr(e,t,n){t=t||[];for(let i=e.length-1;i>=0;i--){let r=e[i];r?Array.isArray(r)?vr(r,t):t.indexOf(r)<0&&(!n||n.indexOf(r)<0)&&t.unshift(r):console.warn("behavior is null, check for missing or 404 import")}return t}function yr(e,t){for(const n in t){const i=e[n],r=t[n];e[n]=!("value"in r)&&i&&"value"in i?Object.assign({value:i.value},r):r}}const _r=pr(HTMLElement);function br(e,t,n){let i;const r={};class o extends t{static _finalizeClass(){if(this.hasOwnProperty(JSCompiler_renameProperty("generatedFrom",this))){if(i)for(let e,t=0;t<i.length;t++)e=i[t],e.properties&&this.createProperties(e.properties),e.observers&&this.createObservers(e.observers,e.properties);e.properties&&this.createProperties(e.properties),e.observers&&this.createObservers(e.observers,e.properties),this._prepareTemplate()}else t._finalizeClass.call(this)}static get properties(){const t={};if(i)for(let e=0;e<i.length;e++)yr(t,i[e].properties);return yr(t,e.properties),t}static get observers(){let t=[];if(i)for(let e,n=0;n<i.length;n++)e=i[n],e.observers&&(t=t.concat(e.observers));return e.observers&&(t=t.concat(e.observers)),t}created(){super.created();const e=r.created;if(e)for(let t=0;t<e.length;t++)e[t].call(this)}_registered(){const e=o.prototype;if(!e.hasOwnProperty(JSCompiler_renameProperty("__hasRegisterFinished",e))){e.__hasRegisterFinished=!0,super._registered(),A&&a(e);const t=Object.getPrototypeOf(this);let n=r.beforeRegister;if(n)for(let e=0;e<n.length;e++)n[e].call(t);if(n=r.registered,n)for(let e=0;e<n.length;e++)n[e].call(t)}}_applyListeners(){super._applyListeners();const e=r.listeners;if(e)for(let t=0;t<e.length;t++){const n=e[t];if(n)for(let e in n)this._addMethodEventListenerToNode(this,e,n[e])}}_ensureAttributes(){const e=r.hostAttributes;if(e)for(let t=e.length-1;t>=0;t--){const n=e[t];for(let e in n)this._ensureAttribute(e,n[e])}super._ensureAttributes()}ready(){super.ready();let e=r.ready;if(e)for(let t=0;t<e.length;t++)e[t].call(this)}attached(){super.attached();let e=r.attached;if(e)for(let t=0;t<e.length;t++)e[t].call(this)}detached(){super.detached();let e=r.detached;if(e)for(let t=0;t<e.length;t++)e[t].call(this)}attributeChanged(e,t,n){super.attributeChanged();let i=r.attributeChanged;if(i)for(let r=0;r<i.length;r++)i[r].call(this,e,t,n)}}if(n){Array.isArray(n)||(n=[n]);let e=t.prototype.behaviors;i=vr(n,null,e),o.prototype.behaviors=e?e.concat(n):i}const a=t=>{i&&function(e,t,n){for(let i=0;i<t.length;i++)mr(e,t[i],n,gr)}(t,i,r),mr(t,e,r,fr)};return A||a(o.prototype),o.generatedFrom=e,o}const xr=function(e){let t;return t="function"==typeof e?e:xr.Class(e),e._legacyForceObservedAttributes&&(t.prototype._legacyForceObservedAttributes=e._legacyForceObservedAttributes),customElements.define(t.is,t),t};function wr(e,t,n,i,r){let o;r&&(o="object"==typeof n&&null!==n,o&&(i=e.__dataTemp[t]));let a=i!==n&&(i==i||n==n);return o&&a&&(e.__dataTemp[t]=n),a}xr.Class=function(e,t){e||console.warn("Polymer.Class requires `info` argument");let n=t?t(_r):_r;return n=br(e,n,e.behaviors),n.is=n.prototype.is=e.is,n};const Sr=F((e=>class extends e{_shouldPropertyChange(e,t,n){return wr(this,e,t,n,!0)}})),Er=F((e=>class extends e{static get properties(){return{mutableData:Boolean}}_shouldPropertyChange(e,t,n){return wr(this,e,t,n,this.mutableData)}}));Sr._mutablePropertyChange=wr;let Cr=null;function zr(){return Cr}zr.prototype=Object.create(HTMLTemplateElement.prototype,{constructor:{value:zr,writable:!0}});const kr=St(zr),Mr=Sr(kr),Ar=St(class{});function Tr(e,t){for(let n=0;n<t.length;n++){let i=t[n];if(Boolean(e)!=Boolean(i.__hideTemplateChildren__))if(i.nodeType===Node.TEXT_NODE)e?(i.__polymerTextContent__=i.textContent,i.textContent=""):i.textContent=i.__polymerTextContent__;else if("slot"===i.localName)if(e)i.__polymerReplaced__=document.createComment("hidden-slot"),te(te(i).parentNode).replaceChild(i.__polymerReplaced__,i);else{const e=i.__polymerReplaced__;e&&te(te(e).parentNode).replaceChild(i,e)}else i.style&&(e?(i.__polymerDisplay__=i.style.display,i.style.display="none"):i.style.display=i.__polymerDisplay__);i.__hideTemplateChildren__=e,i._showHideChildren&&i._showHideChildren(e)}}class Nr extends Ar{constructor(e){super(),this._configureProperties(e),this.root=this._stampTemplate(this.__dataHost);let t=[];this.children=t;for(let e=this.root.firstChild;e;e=e.nextSibling)t.push(e),e.__templatizeInstance=this;this.__templatizeOwner&&this.__templatizeOwner.__hideTemplateChildren__&&this._showHideChildren(!0);let n=this.__templatizeOptions;(e&&n.instanceProps||!n.instanceProps)&&this._enableProperties()}_configureProperties(e){if(this.__templatizeOptions.forwardHostProp)for(let e in this.__hostProps)this._setPendingProperty(e,this.__dataHost["_host_"+e]);for(let t in e)this._setPendingProperty(t,e[t])}forwardHostProp(e,t){this._setPendingPropertyOrPath(e,t,!1,!0)&&this.__dataHost._enqueueClient(this)}_addEventListenerToNode(e,t,n){if(this._methodHost&&this.__templatizeOptions.parentModel)this._methodHost._addEventListenerToNode(e,t,(e=>{e.model=this,n(e)}));else{let i=this.__dataHost.__dataHost;i&&i._addEventListenerToNode(e,t,n)}}_showHideChildren(e){Tr(e,this.children)}_setUnmanagedPropertyToNode(e,t,n){e.__hideTemplateChildren__&&e.nodeType==Node.TEXT_NODE&&"textContent"==t?e.__polymerTextContent__=n:super._setUnmanagedPropertyToNode(e,t,n)}get parentModel(){let e=this.__parentModel;if(!e){let t;e=this;do{e=e.__dataHost.__dataHost}while((t=e.__templatizeOptions)&&!t.parentModel);this.__parentModel=e}return e}dispatchEvent(e){return!0}}Nr.prototype.__dataHost,Nr.prototype.__templatizeOptions,Nr.prototype._methodHost,Nr.prototype.__templatizeOwner,Nr.prototype.__hostProps;const Ir=Sr(Nr);function Or(e){let t=e.__dataHost;return t&&t._methodHost||t}function Lr(e,t){return function(e,n,i){t.call(e.__templatizeOwner,n.substring(6),i[n])}}function Pr(e,t){return function(e,n,i){t.call(e.__templatizeOwner,e,n,i[n])}}function Hr(e,t,n){if(k&&!Or(e))throw new Error("strictTemplatePolicy: template owner not trusted");if(n=n||{},e.__templatizeOwner)throw new Error("A <template> can only be templatized once");e.__templatizeOwner=t;let i=(t?t.constructor:Nr)._parseTemplate(e),r=i.templatizeInstanceClass;r||(r=function(e,t,n){let i=n.mutableData?Ir:Nr;Hr.mixin&&(i=Hr.mixin(i));let r=class extends i{};return r.prototype.__templatizeOptions=n,r.prototype._bindTemplate(e),function(e,t,n,i){let r=n.hostProps||{};for(let t in i.instanceProps){delete r[t];let n=i.notifyInstanceProp;n&&e.prototype._addPropertyEffect(t,e.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:Pr(0,n)})}if(i.forwardHostProp&&t.__dataHost)for(let t in r)n.hasHostProps||(n.hasHostProps=!0),e.prototype._addPropertyEffect(t,e.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:function(e,t,n){e.__dataHost._setPendingPropertyOrPath("_host_"+t,n[t],!0,!0)}})}(r,e,t,n),r}(e,i,n),i.templatizeInstanceClass=r);const o=Or(e);!function(e,t,n,i){let r=n.forwardHostProp;if(r&&t.hasHostProps){const o="template"==e.localName;let a=t.templatizeTemplateClass;if(!a){if(o){let e=n.mutableData?Mr:kr;class i extends e{}a=t.templatizeTemplateClass=i}else{const n=e.constructor;class i extends n{}a=t.templatizeTemplateClass=i}let s=t.hostProps;for(let e in s)a.prototype._addPropertyEffect("_host_"+e,a.prototype.PROPERTY_EFFECT_TYPES.PROPAGATE,{fn:Lr(0,r)}),a.prototype._createNotifyingProperty("_host_"+e);T&&i&&function(e,t,n){const i=n.constructor._properties,{propertyEffects:r}=e,{instanceProps:o}=t;for(let e in r)if(!(i[e]||o&&o[e])){const t=r[e];for(let n=0;n<t.length;n++){const{part:i}=t[n].info;if(!i.signature||!i.signature.static){console.warn(`Property '${e}' used in template but not declared in 'properties'; attribute will not be observed.`);break}}}}(t,n,i)}if(e.__dataProto&&Object.assign(e.__data,e.__dataProto),o)!function(e,t){Cr=e,Object.setPrototypeOf(e,t.prototype),new t,Cr=null}(e,a),e.__dataTemp={},e.__dataPending=null,e.__dataOld=null,e._enableProperties();else{Object.setPrototypeOf(e,a.prototype);const n=t.hostProps;for(let t in n)if(t="_host_"+t,t in e){const n=e[t];delete e[t],e.__data[t]=n}}}}(e,i,n,o);let a=class extends r{};return a.prototype._methodHost=o,a.prototype.__dataHost=e,a.prototype.__templatizeOwner=t,a.prototype.__hostProps=i.hostProps,a}function Rr(e,t){let n;for(;t;)if(n=t.__dataHost?t:t.__templatizeInstance){if(n.__dataHost==e)return n;t=n.__dataHost}else t=te(t).parentNode;return null}const Vr={templatize(e,t){this._templatizerTemplate=e,this.ctor=Hr(e,this,{mutableData:Boolean(t),parentModel:this._parentModel,instanceProps:this._instanceProps,forwardHostProp:this._forwardHostPropV2,notifyInstanceProp:this._notifyInstancePropV2})},stamp(e){return new this.ctor(e)},modelForElement(e){return Rr(this._templatizerTemplate,e)}};let Br=!1;function Dr(){if(A&&!w){if(!Br){Br=!0;const e=document.createElement("style");e.textContent="dom-bind,dom-if,dom-repeat{display:none;}",document.head.appendChild(e)}return!0}return!1}const Fr=zi(Er(St(HTMLElement)));customElements.define("dom-bind",class extends Fr{static get observedAttributes(){return["mutable-data"]}constructor(){if(super(),k)throw new Error("strictTemplatePolicy: dom-bind not allowed");this.root=null,this.$=null,this.__children=null}attributeChangedCallback(e,t,n,i){this.mutableData=!0}connectedCallback(){Dr()||(this.style.display="none"),this.render()}disconnectedCallback(){this.__removeChildren()}__insertChildren(){te(te(this).parentNode).insertBefore(this.root,this)}__removeChildren(){if(this.__children)for(let e=0;e<this.__children.length;e++)this.root.appendChild(this.__children[e])}render(){let e;if(!this.__children){if(e=e||this.querySelector("template"),!e){let t=new MutationObserver((()=>{if(e=this.querySelector("template"),!e)throw new Error("dom-bind requires a <template> child");t.disconnect(),this.render()}));return void t.observe(this,{childList:!0})}this.root=this._stampTemplate(e),this.$=this.root.$,this.__children=[];for(let e=this.root.firstChild;e;e=e.nextSibling)this.__children[this.__children.length]=e;this._enableProperties()}this.__insertChildren(),this.dispatchEvent(new CustomEvent("dom-change",{bubbles:!0,composed:!0}))}});const jr=Er(Pt);class Ur extends jr{static get is(){return"dom-repeat"}static get template(){return null}static get properties(){return{items:{type:Array},as:{type:String,value:"item"},indexAs:{type:String,value:"index"},itemsIndexAs:{type:String,value:"itemsIndex"},sort:{type:Function,observer:"__sortChanged"},filter:{type:Function,observer:"__filterChanged"},observe:{type:String,observer:"__observeChanged"},delay:Number,renderedItemCount:{type:Number,notify:!H,readOnly:!0},initialCount:{type:Number},targetFramerate:{type:Number,value:20},_targetFrameTime:{type:Number,computed:"__computeFrameTime(targetFramerate)"},notifyDomChange:{type:Boolean},reuseChunkedInstances:{type:Boolean}}}static get observers(){return["__itemsChanged(items.*)"]}constructor(){super(),this.__instances=[],this.__renderDebouncer=null,this.__itemsIdxToInstIdx={},this.__chunkCount=null,this.__renderStartTime=null,this.__itemsArrayChanged=!1,this.__shouldMeasureChunk=!1,this.__shouldContinueChunking=!1,this.__chunkingId=0,this.__sortFn=null,this.__filterFn=null,this.__observePaths=null,this.__ctor=null,this.__isDetached=!0,this.template=null,this._templateInfo}disconnectedCallback(){super.disconnectedCallback(),this.__isDetached=!0;for(let e=0;e<this.__instances.length;e++)this.__detachInstance(e);this.__chunkingId&&cancelAnimationFrame(this.__chunkingId)}connectedCallback(){if(super.connectedCallback(),Dr()||(this.style.display="none"),this.__isDetached){this.__isDetached=!1;let e=te(te(this).parentNode);for(let t=0;t<this.__instances.length;t++)this.__attachInstance(t,e);this.__chunkingId&&this.__render()}}__ensureTemplatized(){if(!this.__ctor){const e=this;let t=this.template=e._templateInfo?e:this.querySelector("template");if(!t){let e=new MutationObserver((()=>{if(!this.querySelector("template"))throw new Error("dom-repeat requires a <template> child");e.disconnect(),this.__render()}));return e.observe(this,{childList:!0}),!1}let n={};n[this.as]=!0,n[this.indexAs]=!0,n[this.itemsIndexAs]=!0,this.__ctor=Hr(t,this,{mutableData:this.mutableData,parentModel:!0,instanceProps:n,forwardHostProp:function(e,t){let n=this.__instances;for(let i,r=0;r<n.length&&(i=n[r]);r++)i.forwardHostProp(e,t)},notifyInstanceProp:function(e,t,n){if(se(this.as,t)){let i=e[this.itemsIndexAs];t==this.as&&(this.items[i]=n);let r=ae(this.as,`${JSCompiler_renameProperty("items",this)}.${i}`,t);this.notifyPath(r,n)}}})}return!0}__getMethodHost(){return this.__dataHost._methodHost||this.__dataHost}__functionFromPropertyValue(e){if("string"==typeof e){let t=e,n=this.__getMethodHost();return function(){return n[t].apply(n,arguments)}}return e}__sortChanged(e){this.__sortFn=this.__functionFromPropertyValue(e),this.items&&this.__debounceRender(this.__render)}__filterChanged(e){this.__filterFn=this.__functionFromPropertyValue(e),this.items&&this.__debounceRender(this.__render)}__computeFrameTime(e){return Math.ceil(1e3/e)}__observeChanged(){this.__observePaths=this.observe&&this.observe.replace(".*",".").split(" ")}__handleObservedPaths(e){if(this.__sortFn||this.__filterFn)if(e){if(this.__observePaths){let t=this.__observePaths;for(let n=0;n<t.length;n++)0===e.indexOf(t[n])&&this.__debounceRender(this.__render,this.delay)}}else this.__debounceRender(this.__render,this.delay)}__itemsChanged(e){this.items&&!Array.isArray(this.items)&&console.warn("dom-repeat expected array for `items`, found",this.items),this.__handleItemPath(e.path,e.value)||("items"===e.path&&(this.__itemsArrayChanged=!0),this.__debounceRender(this.__render))}__debounceRender(e,t=0){this.__renderDebouncer=Dn.debounce(this.__renderDebouncer,t>0?Se.after(t):ze,e.bind(this)),jn(this.__renderDebouncer)}render(){this.__debounceRender(this.__render),Yi()}__render(){if(!this.__ensureTemplatized())return;let e=this.items||[];const t=this.__sortAndFilterItems(e),n=this.__calculateLimit(t.length);this.__updateInstances(e,n,t),this.initialCount&&(this.__shouldMeasureChunk||this.__shouldContinueChunking)&&(cancelAnimationFrame(this.__chunkingId),this.__chunkingId=requestAnimationFrame((()=>{this.__chunkingId=null,this.__continueChunking()}))),this._setRenderedItemCount(this.__instances.length),H&&!this.notifyDomChange||this.dispatchEvent(new CustomEvent("dom-change",{bubbles:!0,composed:!0}))}__sortAndFilterItems(e){let t=new Array(e.length);for(let n=0;n<e.length;n++)t[n]=n;return this.__filterFn&&(t=t.filter(((t,n,i)=>this.__filterFn(e[t],n,i)))),this.__sortFn&&t.sort(((t,n)=>this.__sortFn(e[t],e[n]))),t}__calculateLimit(e){let t=e;const n=this.__instances.length;if(this.initialCount){let i;!this.__chunkCount||this.__itemsArrayChanged&&!this.reuseChunkedInstances?(t=Math.min(e,this.initialCount),i=Math.max(t-n,0),this.__chunkCount=i||1):(i=Math.min(Math.max(e-n,0),this.__chunkCount),t=Math.min(n+i,e)),this.__shouldMeasureChunk=i===this.__chunkCount,this.__shouldContinueChunking=t<e,this.__renderStartTime=performance.now()}return this.__itemsArrayChanged=!1,t}__continueChunking(){if(this.__shouldMeasureChunk){const e=performance.now()-this.__renderStartTime,t=this._targetFrameTime/e;this.__chunkCount=Math.round(this.__chunkCount*t)||1}this.__shouldContinueChunking&&this.__debounceRender(this.__render)}__updateInstances(e,t,n){const i=this.__itemsIdxToInstIdx={};let r;for(r=0;r<t;r++){let t=this.__instances[r],o=n[r],a=e[o];i[o]=r,t?(t._setPendingProperty(this.as,a),t._setPendingProperty(this.indexAs,r),t._setPendingProperty(this.itemsIndexAs,o),t._flushProperties()):this.__insertInstance(a,r,o)}for(let e=this.__instances.length-1;e>=r;e--)this.__detachAndRemoveInstance(e)}__detachInstance(e){let t=this.__instances[e];const n=te(t.root);for(let e=0;e<t.children.length;e++){let i=t.children[e];n.appendChild(i)}return t}__attachInstance(e,t){let n=this.__instances[e];t.insertBefore(n.root,this)}__detachAndRemoveInstance(e){this.__detachInstance(e),this.__instances.splice(e,1)}__stampInstance(e,t,n){let i={};return i[this.as]=e,i[this.indexAs]=t,i[this.itemsIndexAs]=n,new this.__ctor(i)}__insertInstance(e,t,n){const i=this.__stampInstance(e,t,n);let r=this.__instances[t+1],o=r?r.children[0]:this;return te(te(this).parentNode).insertBefore(i.root,o),this.__instances[t]=i,i}_showHideChildren(e){for(let t=0;t<this.__instances.length;t++)this.__instances[t]._showHideChildren(e)}__handleItemPath(e,t){let n=e.slice(6),i=n.indexOf("."),r=i<0?n:n.substring(0,i);if(r==parseInt(r,10)){let e=i<0?"":n.substring(i+1);this.__handleObservedPaths(e);let o=this.__itemsIdxToInstIdx[r],a=this.__instances[o];if(a){let n=this.as+(e?"."+e:"");a._setPendingPropertyOrPath(n,t,!1,!0),a._flushProperties()}return!0}}itemForElement(e){let t=this.modelForElement(e);return t&&t[this.as]}indexForElement(e){let t=this.modelForElement(e);return t&&t[this.indexAs]}modelForElement(e){return Rr(this.template,e)}}customElements.define(Ur.is,Ur);class $r extends Pt{static get is(){return"dom-if"}static get template(){return null}static get properties(){return{if:{type:Boolean,observer:"__debounceRender"},restamp:{type:Boolean,observer:"__debounceRender"},notifyDomChange:{type:Boolean}}}constructor(){super(),this.__renderDebouncer=null,this._lastIf=!1,this.__hideTemplateChildren__=!1,this.__template,this._templateInfo}__debounceRender(){this.__renderDebouncer=Dn.debounce(this.__renderDebouncer,ze,(()=>this.__render())),jn(this.__renderDebouncer)}disconnectedCallback(){super.disconnectedCallback();const e=te(this).parentNode;e&&(e.nodeType!=Node.DOCUMENT_FRAGMENT_NODE||te(e).host)||this.__teardownInstance()}connectedCallback(){super.connectedCallback(),Dr()||(this.style.display="none"),this.if&&this.__debounceRender()}__ensureTemplate(){if(!this.__template){const e=this;let t=e._templateInfo?e:te(e).querySelector("template");if(!t){let e=new MutationObserver((()=>{if(!te(this).querySelector("template"))throw new Error("dom-if requires a <template> child");e.disconnect(),this.__render()}));return e.observe(this,{childList:!0}),!1}this.__template=t}return!0}__ensureInstance(){let e=te(this).parentNode;if(this.__hasInstance()){let t=this.__getInstanceNodes();if(t&&t.length&&te(this).previousSibling!==t[t.length-1])for(let n,i=0;i<t.length&&(n=t[i]);i++)te(e).insertBefore(n,this)}else{if(!e)return!1;if(!this.__ensureTemplate())return!1;this.__createAndInsertInstance(e)}return!0}render(){Yi()}__render(){if(this.if){if(!this.__ensureInstance())return}else this.restamp&&this.__teardownInstance();this._showHideChildren(),H&&!this.notifyDomChange||this.if==this._lastIf||(this.dispatchEvent(new CustomEvent("dom-change",{bubbles:!0,composed:!0})),this._lastIf=this.if)}__hasInstance(){}__getInstanceNodes(){}__createAndInsertInstance(e){}__teardownInstance(){}_showHideChildren(){}}const Gr=P?class extends $r{constructor(){super(),this.__instance=null,this.__syncInfo=null}__hasInstance(){return Boolean(this.__instance)}__getInstanceNodes(){return this.__instance.templateInfo.childNodes}__createAndInsertInstance(e){const t=this.__dataHost||this;if(k&&!this.__dataHost)throw new Error("strictTemplatePolicy: template owner not trusted");const n=t._bindTemplate(this.__template,!0);n.runEffects=(e,t,n)=>{let i=this.__syncInfo;if(this.if)i&&(this.__syncInfo=null,this._showHideChildren(),t=Object.assign(i.changedProps,t)),e(t,n);else if(this.__instance)if(i||(i=this.__syncInfo={runEffects:e,changedProps:{}}),n)for(const e in t){const t=ie(e);i.changedProps[t]=this.__dataHost[t]}else Object.assign(i.changedProps,t)},this.__instance=t._stampTemplate(this.__template,n),te(e).insertBefore(this.__instance,this)}__syncHostProperties(){const e=this.__syncInfo;e&&(this.__syncInfo=null,e.runEffects(e.changedProps,!1))}__teardownInstance(){const e=this.__dataHost||this;this.__instance&&(e._removeBoundDom(this.__instance),this.__instance=null,this.__syncInfo=null)}_showHideChildren(){const e=this.__hideTemplateChildren__||!this.if;this.__instance&&Boolean(this.__instance.__hidden)!==e&&(this.__instance.__hidden=e,Tr(e,this.__instance.templateInfo.childNodes)),e||this.__syncHostProperties()}}:class extends $r{constructor(){super(),this.__ctor=null,this.__instance=null,this.__invalidProps=null}__hasInstance(){return Boolean(this.__instance)}__getInstanceNodes(){return this.__instance.children}__createAndInsertInstance(e){this.__ctor||(this.__ctor=Hr(this.__template,this,{mutableData:!0,forwardHostProp:function(e,t){this.__instance&&(this.if?this.__instance.forwardHostProp(e,t):(this.__invalidProps=this.__invalidProps||Object.create(null),this.__invalidProps[ie(e)]=!0))}})),this.__instance=new this.__ctor,te(e).insertBefore(this.__instance.root,this)}__teardownInstance(){if(this.__instance){let e=this.__instance.children;if(e&&e.length){let t=te(e[0]).parentNode;if(t){t=te(t);for(let n,i=0;i<e.length&&(n=e[i]);i++)t.removeChild(n)}}this.__invalidProps=null,this.__instance=null}}__syncHostProperties(){let e=this.__invalidProps;if(e){this.__invalidProps=null;for(let t in e)this.__instance._setPendingProperty(t,this.__dataHost[t]);this.__instance._flushProperties()}}_showHideChildren(){const e=this.__hideTemplateChildren__||!this.if;this.__instance&&Boolean(this.__instance.__hidden)!==e&&(this.__instance.__hidden=e,this.__instance._showHideChildren(e)),e||this.__syncHostProperties()}};customElements.define(Gr.is,Gr);let qr=F((e=>{let t=At(e);return class extends t{static get properties(){return{items:{type:Array},multi:{type:Boolean,value:!1},selected:{type:Object,notify:!0},selectedItem:{type:Object,notify:!0},toggle:{type:Boolean,value:!1}}}static get observers(){return["__updateSelection(multi, items.*)"]}constructor(){super(),this.__lastItems=null,this.__lastMulti=null,this.__selectedMap=null}__updateSelection(e,t){let n=t.path;if(n==JSCompiler_renameProperty("items",this)){let n=t.base||[],i=this.__lastItems;if(e!==this.__lastMulti&&this.clearSelection(),i){let e=qi(n,i);this.__applySplices(e)}this.__lastItems=n,this.__lastMulti=e}else if(t.path==`${JSCompiler_renameProperty("items",this)}.splices`)this.__applySplices(t.value.indexSplices);else{let e=n.slice(`${JSCompiler_renameProperty("items",this)}.`.length),t=parseInt(e,10);e.indexOf(".")<0&&e==t&&this.__deselectChangedIdx(t)}}__applySplices(e){let t=this.__selectedMap;for(let n=0;n<e.length;n++){let i=e[n];t.forEach(((e,n)=>{e<i.index||(e>=i.index+i.removed.length?t.set(n,e+i.addedCount-i.removed.length):t.set(n,-1))}));for(let e=0;e<i.addedCount;e++){let n=i.index+e;t.has(this.items[n])&&t.set(this.items[n],n)}}this.__updateLinks();let n=0;t.forEach(((e,i)=>{e<0?(this.multi?this.splice(JSCompiler_renameProperty("selected",this),n,1):this.selected=this.selectedItem=null,t.delete(i)):n++}))}__updateLinks(){if(this.__dataLinkedPaths={},this.multi){let e=0;this.__selectedMap.forEach((t=>{t>=0&&this.linkPaths(`${JSCompiler_renameProperty("items",this)}.${t}`,`${JSCompiler_renameProperty("selected",this)}.${e++}`)}))}else this.__selectedMap.forEach((e=>{this.linkPaths(JSCompiler_renameProperty("selected",this),`${JSCompiler_renameProperty("items",this)}.${e}`),this.linkPaths(JSCompiler_renameProperty("selectedItem",this),`${JSCompiler_renameProperty("items",this)}.${e}`)}))}clearSelection(){this.__dataLinkedPaths={},this.__selectedMap=new Map,this.selected=this.multi?[]:null,this.selectedItem=null}isSelected(e){return this.__selectedMap.has(e)}isIndexSelected(e){return this.isSelected(this.items[e])}__deselectChangedIdx(e){let t=this.__selectedIndexForItemIndex(e);if(t>=0){let e=0;this.__selectedMap.forEach(((n,i)=>{t==e++&&this.deselect(i)}))}}__selectedIndexForItemIndex(e){let t=this.__dataLinkedPaths[`${JSCompiler_renameProperty("items",this)}.${e}`];if(t)return parseInt(t.slice(`${JSCompiler_renameProperty("selected",this)}.`.length),10)}deselect(e){let t=this.__selectedMap.get(e);if(t>=0){let n;this.__selectedMap.delete(e),this.multi&&(n=this.__selectedIndexForItemIndex(t)),this.__updateLinks(),this.multi?this.splice(JSCompiler_renameProperty("selected",this),n,1):this.selected=this.selectedItem=null}}deselectIndex(e){this.deselect(this.items[e])}select(e){this.selectIndex(this.items.indexOf(e))}selectIndex(e){let t=this.items[e];this.isSelected(t)?this.toggle&&this.deselectIndex(e):(this.multi||this.__selectedMap.clear(),this.__selectedMap.set(t,e),this.__updateLinks(),this.multi?this.push(JSCompiler_renameProperty("selected",this),t):this.selected=this.selectedItem=t)}}}))(Pt);class Xr extends qr{static get is(){return"array-selector"}static get template(){return null}}customElements.define(Xr.is,Xr);const Wr=new Rn;window.ShadyCSS||(window.ShadyCSS={prepareTemplate(e,t,n){},prepareTemplateDom(e,t){},prepareTemplateStyles(e,t,n){},styleSubtree(e,t){Wr.processStyles(),pn(e,t)},styleElement(e){Wr.processStyles()},styleDocument(e){Wr.processStyles(),pn(document.body,e)},getComputedStyleValue:(e,t)=>un(e,t),flushCustomStyles(){},nativeCss:Ft,nativeShadow:Ht,cssBuild:Vt,disableRuntime:Dt}),window.ShadyCSS.CustomStyleInterface=Wr;const Kr="include",Yr=window.ShadyCSS.CustomStyleInterface;class Jr extends HTMLElement{constructor(){super(),this._style=null,Yr.addCustomStyle(this)}getStyle(){if(this._style)return this._style;const e=this.querySelector("style");if(!e)return null;this._style=e;const t=e.getAttribute(Kr);return t&&(e.removeAttribute(Kr),e.textContent=function(e){let t=e.trim().split(/\s+/),n="";for(let e=0;e<t.length;e++)n+=ee(t[e]);return n}(t)+e.textContent),this.ownerDocument!==window.document&&window.document.head.appendChild(this),this._style}}let Zr;window.customElements.define("custom-style",Jr),Zr=Sr._mutablePropertyChange;const Qr={properties:{mutableData:Boolean},_shouldPropertyChange(e,t,n){return Zr(this,e,t,n,this.mutableData)}},eo=pr(HTMLElement).prototype;var to=new Set;const no={properties:{_parentResizable:{type:Object,observer:"_parentResizableChanged"},_notifyingDescendant:{type:Boolean,value:!1}},listeners:{"iron-request-resize-notifications":"_onIronRequestResizeNotifications"},created:function(){this._interestedResizables=[],this._boundNotifyResize=this.notifyResize.bind(this),this._boundOnDescendantIronResize=this._onDescendantIronResize.bind(this)},attached:function(){this._requestResizeNotifications()},detached:function(){this._parentResizable?this._parentResizable.stopResizeNotificationsFor(this):(to.delete(this),window.removeEventListener("resize",this._boundNotifyResize)),this._parentResizable=null},notifyResize:function(){this.isAttached&&(this._interestedResizables.forEach((function(e){this.resizerShouldNotify(e)&&this._notifyDescendant(e)}),this),this._fireResize())},assignParentResizable:function(e){this._parentResizable&&this._parentResizable.stopResizeNotificationsFor(this),this._parentResizable=e,e&&-1===e._interestedResizables.indexOf(this)&&(e._interestedResizables.push(this),e._subscribeIronResize(this))},stopResizeNotificationsFor:function(e){var t=this._interestedResizables.indexOf(e);t>-1&&(this._interestedResizables.splice(t,1),this._unsubscribeIronResize(e))},_subscribeIronResize:function(e){e.addEventListener("iron-resize",this._boundOnDescendantIronResize)},_unsubscribeIronResize:function(e){e.removeEventListener("iron-resize",this._boundOnDescendantIronResize)},resizerShouldNotify:function(e){return!0},_onDescendantIronResize:function(e){this._notifyingDescendant?e.stopPropagation():w||this._fireResize()},_fireResize:function(){this.fire("iron-resize",null,{node:this,bubbles:!1})},_onIronRequestResizeNotifications:function(e){var t=rr(e).rootTarget;t!==this&&(t.assignParentResizable(this),this._notifyDescendant(t),e.stopPropagation())},_parentResizableChanged:function(e){e&&window.removeEventListener("resize",this._boundNotifyResize)},_notifyDescendant:function(e){this.isAttached&&(this._notifyingDescendant=!0,e.notifyResize(),this._notifyingDescendant=!1)},_requestResizeNotifications:function(){if(this.isAttached)if("loading"===document.readyState){var e=this._requestResizeNotifications.bind(this);document.addEventListener("readystatechange",(function t(){document.removeEventListener("readystatechange",t),e()}))}else this._findParent(),this._parentResizable?this._parentResizable._interestedResizables.forEach((function(e){e!==this&&e._findParent()}),this):(to.forEach((function(e){e!==this&&e._findParent()}),this),window.addEventListener("resize",this._boundNotifyResize),this.notifyResize())},_findParent:function(){this.assignParentResizable(null),this.fire("iron-request-resize-notifications",null,{node:this,bubbles:!0,cancelable:!0}),this._parentResizable?to.delete(this):to.add(this)}};xr({_template:Ot`
    <style>
      :host {
        display: block;
        transition-duration: var(--iron-collapse-transition-duration, 300ms);
        /* Safari 10 needs this property prefixed to correctly apply the custom property */
        -webkit-transition-duration: var(--iron-collapse-transition-duration, 300ms);
        overflow: visible;
      }

      :host(.iron-collapse-closed) {
        display: none;
      }

      :host(:not(.iron-collapse-opened)) {
        overflow: hidden;
      }
    </style>

    <slot></slot>
`,is:"iron-collapse",behaviors:[no],properties:{horizontal:{type:Boolean,value:!1,observer:"_horizontalChanged"},opened:{type:Boolean,value:!1,notify:!0,observer:"_openedChanged"},transitioning:{type:Boolean,notify:!0,readOnly:!0},noAnimation:{type:Boolean},_desiredSize:{type:String,value:""}},get dimension(){return this.horizontal?"width":"height"},get _dimensionMax(){return this.horizontal?"maxWidth":"maxHeight"},get _dimensionMaxCss(){return this.horizontal?"max-width":"max-height"},hostAttributes:{role:"group","aria-hidden":"true"},listeners:{transitionend:"_onTransitionEnd"},toggle:function(){this.opened=!this.opened},show:function(){this.opened=!0},hide:function(){this.opened=!1},updateSize:function(e,t){e="auto"===e?"":e;var n=t&&!this.noAnimation&&this.isAttached&&this._desiredSize!==e;if(this._desiredSize=e,this._updateTransition(!1),n){var i=this._calcSize();""===e&&(this.style[this._dimensionMax]="",e=this._calcSize()),this.style[this._dimensionMax]=i,this.scrollTop=this.scrollTop,this._updateTransition(!0),n=e!==i}this.style[this._dimensionMax]=e,n||this._transitionEnd()},enableTransition:function(e){eo._warn("`enableTransition()` is deprecated, use `noAnimation` instead."),this.noAnimation=!e},_updateTransition:function(e){this.style.transitionDuration=e&&!this.noAnimation?"":"0s"},_horizontalChanged:function(){this.style.transitionProperty=this._dimensionMaxCss;var e="maxWidth"===this._dimensionMax?"maxHeight":"maxWidth";this.style[e]="",this.updateSize(this.opened?"auto":"0px",!1)},_openedChanged:function(){this.setAttribute("aria-hidden",!this.opened),this._setTransitioning(!0),this.toggleClass("iron-collapse-closed",!1),this.toggleClass("iron-collapse-opened",!1),this.updateSize(this.opened?"auto":"0px",!0),this.opened&&this.focus()},_transitionEnd:function(){this.style[this._dimensionMax]=this._desiredSize,this.toggleClass("iron-collapse-closed",!this.opened),this.toggleClass("iron-collapse-opened",this.opened),this._updateTransition(!1),this.notifyResize(),this._setTransitioning(!1)},_onTransitionEnd:function(e){rr(e).rootTarget===this&&this._transitionEnd()},_calcSize:function(){return this.getBoundingClientRect()[this.dimension]+"px"}});const io=Ot`
/* Most common used flex styles*/
<dom-module id="iron-flex">
  <template>
    <style>
      .layout.horizontal,
      .layout.vertical {
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
      }

      .layout.inline {
        display: -ms-inline-flexbox;
        display: -webkit-inline-flex;
        display: inline-flex;
      }

      .layout.horizontal {
        -ms-flex-direction: row;
        -webkit-flex-direction: row;
        flex-direction: row;
      }

      .layout.vertical {
        -ms-flex-direction: column;
        -webkit-flex-direction: column;
        flex-direction: column;
      }

      .layout.wrap {
        -ms-flex-wrap: wrap;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
      }

      .layout.no-wrap {
        -ms-flex-wrap: nowrap;
        -webkit-flex-wrap: nowrap;
        flex-wrap: nowrap;
      }

      .layout.center,
      .layout.center-center {
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
      }

      .layout.center-justified,
      .layout.center-center {
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
      }

      .flex {
        -ms-flex: 1 1 0.000000001px;
        -webkit-flex: 1;
        flex: 1;
        -webkit-flex-basis: 0.000000001px;
        flex-basis: 0.000000001px;
      }

      .flex-auto {
        -ms-flex: 1 1 auto;
        -webkit-flex: 1 1 auto;
        flex: 1 1 auto;
      }

      .flex-none {
        -ms-flex: none;
        -webkit-flex: none;
        flex: none;
      }
    </style>
  </template>
</dom-module>
/* Basic flexbox reverse styles */
<dom-module id="iron-flex-reverse">
  <template>
    <style>
      .layout.horizontal-reverse,
      .layout.vertical-reverse {
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
      }

      .layout.horizontal-reverse {
        -ms-flex-direction: row-reverse;
        -webkit-flex-direction: row-reverse;
        flex-direction: row-reverse;
      }

      .layout.vertical-reverse {
        -ms-flex-direction: column-reverse;
        -webkit-flex-direction: column-reverse;
        flex-direction: column-reverse;
      }

      .layout.wrap-reverse {
        -ms-flex-wrap: wrap-reverse;
        -webkit-flex-wrap: wrap-reverse;
        flex-wrap: wrap-reverse;
      }
    </style>
  </template>
</dom-module>
/* Flexbox alignment */
<dom-module id="iron-flex-alignment">
  <template>
    <style>
      /**
       * Alignment in cross axis.
       */
      .layout.start {
        -ms-flex-align: start;
        -webkit-align-items: flex-start;
        align-items: flex-start;
      }

      .layout.center,
      .layout.center-center {
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
      }

      .layout.end {
        -ms-flex-align: end;
        -webkit-align-items: flex-end;
        align-items: flex-end;
      }

      .layout.baseline {
        -ms-flex-align: baseline;
        -webkit-align-items: baseline;
        align-items: baseline;
      }

      /**
       * Alignment in main axis.
       */
      .layout.start-justified {
        -ms-flex-pack: start;
        -webkit-justify-content: flex-start;
        justify-content: flex-start;
      }

      .layout.center-justified,
      .layout.center-center {
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
      }

      .layout.end-justified {
        -ms-flex-pack: end;
        -webkit-justify-content: flex-end;
        justify-content: flex-end;
      }

      .layout.around-justified {
        -ms-flex-pack: distribute;
        -webkit-justify-content: space-around;
        justify-content: space-around;
      }

      .layout.justified {
        -ms-flex-pack: justify;
        -webkit-justify-content: space-between;
        justify-content: space-between;
      }

      /**
       * Self alignment.
       */
      .self-start {
        -ms-align-self: flex-start;
        -webkit-align-self: flex-start;
        align-self: flex-start;
      }

      .self-center {
        -ms-align-self: center;
        -webkit-align-self: center;
        align-self: center;
      }

      .self-end {
        -ms-align-self: flex-end;
        -webkit-align-self: flex-end;
        align-self: flex-end;
      }

      .self-stretch {
        -ms-align-self: stretch;
        -webkit-align-self: stretch;
        align-self: stretch;
      }

      .self-baseline {
        -ms-align-self: baseline;
        -webkit-align-self: baseline;
        align-self: baseline;
      }

      /**
       * multi-line alignment in main axis.
       */
      .layout.start-aligned {
        -ms-flex-line-pack: start;  /* IE10 */
        -ms-align-content: flex-start;
        -webkit-align-content: flex-start;
        align-content: flex-start;
      }

      .layout.end-aligned {
        -ms-flex-line-pack: end;  /* IE10 */
        -ms-align-content: flex-end;
        -webkit-align-content: flex-end;
        align-content: flex-end;
      }

      .layout.center-aligned {
        -ms-flex-line-pack: center;  /* IE10 */
        -ms-align-content: center;
        -webkit-align-content: center;
        align-content: center;
      }

      .layout.between-aligned {
        -ms-flex-line-pack: justify;  /* IE10 */
        -ms-align-content: space-between;
        -webkit-align-content: space-between;
        align-content: space-between;
      }

      .layout.around-aligned {
        -ms-flex-line-pack: distribute;  /* IE10 */
        -ms-align-content: space-around;
        -webkit-align-content: space-around;
        align-content: space-around;
      }
    </style>
  </template>
</dom-module>
/* Non-flexbox positioning helper styles */
<dom-module id="iron-flex-factors">
  <template>
    <style>
      .flex,
      .flex-1 {
        -ms-flex: 1 1 0.000000001px;
        -webkit-flex: 1;
        flex: 1;
        -webkit-flex-basis: 0.000000001px;
        flex-basis: 0.000000001px;
      }

      .flex-2 {
        -ms-flex: 2;
        -webkit-flex: 2;
        flex: 2;
      }

      .flex-3 {
        -ms-flex: 3;
        -webkit-flex: 3;
        flex: 3;
      }

      .flex-4 {
        -ms-flex: 4;
        -webkit-flex: 4;
        flex: 4;
      }

      .flex-5 {
        -ms-flex: 5;
        -webkit-flex: 5;
        flex: 5;
      }

      .flex-6 {
        -ms-flex: 6;
        -webkit-flex: 6;
        flex: 6;
      }

      .flex-7 {
        -ms-flex: 7;
        -webkit-flex: 7;
        flex: 7;
      }

      .flex-8 {
        -ms-flex: 8;
        -webkit-flex: 8;
        flex: 8;
      }

      .flex-9 {
        -ms-flex: 9;
        -webkit-flex: 9;
        flex: 9;
      }

      .flex-10 {
        -ms-flex: 10;
        -webkit-flex: 10;
        flex: 10;
      }

      .flex-11 {
        -ms-flex: 11;
        -webkit-flex: 11;
        flex: 11;
      }

      .flex-12 {
        -ms-flex: 12;
        -webkit-flex: 12;
        flex: 12;
      }
    </style>
  </template>
</dom-module>
<dom-module id="iron-positioning">
  <template>
    <style>
      .block {
        display: block;
      }

      [hidden] {
        display: none !important;
      }

      .invisible {
        visibility: hidden !important;
      }

      .relative {
        position: relative;
      }

      .fit {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
      }

      body.fullbleed {
        margin: 0;
        height: 100vh;
      }

      .scroll {
        -webkit-overflow-scrolling: touch;
        overflow: auto;
      }

      /* fixed position */
      .fixed-bottom,
      .fixed-left,
      .fixed-right,
      .fixed-top {
        position: fixed;
      }

      .fixed-top {
        top: 0;
        left: 0;
        right: 0;
      }

      .fixed-right {
        top: 0;
        right: 0;
        bottom: 0;
      }

      .fixed-bottom {
        right: 0;
        bottom: 0;
        left: 0;
      }

      .fixed-left {
        top: 0;
        bottom: 0;
        left: 0;
      }
    </style>
  </template>
</dom-module>
`;io.setAttribute("style","display: none;"),document.head.appendChild(io.content);const ro=Ot`
<custom-style>
  <style is="custom-style">
    [hidden] {
      display: none !important;
    }
  </style>
</custom-style>
<custom-style>
  <style is="custom-style">
    html {

      --layout: {
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
      };

      --layout-inline: {
        display: -ms-inline-flexbox;
        display: -webkit-inline-flex;
        display: inline-flex;
      };

      --layout-horizontal: {
        @apply --layout;

        -ms-flex-direction: row;
        -webkit-flex-direction: row;
        flex-direction: row;
      };

      --layout-horizontal-reverse: {
        @apply --layout;

        -ms-flex-direction: row-reverse;
        -webkit-flex-direction: row-reverse;
        flex-direction: row-reverse;
      };

      --layout-vertical: {
        @apply --layout;

        -ms-flex-direction: column;
        -webkit-flex-direction: column;
        flex-direction: column;
      };

      --layout-vertical-reverse: {
        @apply --layout;

        -ms-flex-direction: column-reverse;
        -webkit-flex-direction: column-reverse;
        flex-direction: column-reverse;
      };

      --layout-wrap: {
        -ms-flex-wrap: wrap;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
      };

      --layout-wrap-reverse: {
        -ms-flex-wrap: wrap-reverse;
        -webkit-flex-wrap: wrap-reverse;
        flex-wrap: wrap-reverse;
      };

      --layout-flex-auto: {
        -ms-flex: 1 1 auto;
        -webkit-flex: 1 1 auto;
        flex: 1 1 auto;
      };

      --layout-flex-none: {
        -ms-flex: none;
        -webkit-flex: none;
        flex: none;
      };

      --layout-flex: {
        -ms-flex: 1 1 0.000000001px;
        -webkit-flex: 1;
        flex: 1;
        -webkit-flex-basis: 0.000000001px;
        flex-basis: 0.000000001px;
      };

      --layout-flex-2: {
        -ms-flex: 2;
        -webkit-flex: 2;
        flex: 2;
      };

      --layout-flex-3: {
        -ms-flex: 3;
        -webkit-flex: 3;
        flex: 3;
      };

      --layout-flex-4: {
        -ms-flex: 4;
        -webkit-flex: 4;
        flex: 4;
      };

      --layout-flex-5: {
        -ms-flex: 5;
        -webkit-flex: 5;
        flex: 5;
      };

      --layout-flex-6: {
        -ms-flex: 6;
        -webkit-flex: 6;
        flex: 6;
      };

      --layout-flex-7: {
        -ms-flex: 7;
        -webkit-flex: 7;
        flex: 7;
      };

      --layout-flex-8: {
        -ms-flex: 8;
        -webkit-flex: 8;
        flex: 8;
      };

      --layout-flex-9: {
        -ms-flex: 9;
        -webkit-flex: 9;
        flex: 9;
      };

      --layout-flex-10: {
        -ms-flex: 10;
        -webkit-flex: 10;
        flex: 10;
      };

      --layout-flex-11: {
        -ms-flex: 11;
        -webkit-flex: 11;
        flex: 11;
      };

      --layout-flex-12: {
        -ms-flex: 12;
        -webkit-flex: 12;
        flex: 12;
      };

      /* alignment in cross axis */

      --layout-start: {
        -ms-flex-align: start;
        -webkit-align-items: flex-start;
        align-items: flex-start;
      };

      --layout-center: {
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
      };

      --layout-end: {
        -ms-flex-align: end;
        -webkit-align-items: flex-end;
        align-items: flex-end;
      };

      --layout-baseline: {
        -ms-flex-align: baseline;
        -webkit-align-items: baseline;
        align-items: baseline;
      };

      /* alignment in main axis */

      --layout-start-justified: {
        -ms-flex-pack: start;
        -webkit-justify-content: flex-start;
        justify-content: flex-start;
      };

      --layout-center-justified: {
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
      };

      --layout-end-justified: {
        -ms-flex-pack: end;
        -webkit-justify-content: flex-end;
        justify-content: flex-end;
      };

      --layout-around-justified: {
        -ms-flex-pack: distribute;
        -webkit-justify-content: space-around;
        justify-content: space-around;
      };

      --layout-justified: {
        -ms-flex-pack: justify;
        -webkit-justify-content: space-between;
        justify-content: space-between;
      };

      --layout-center-center: {
        @apply --layout-center;
        @apply --layout-center-justified;
      };

      /* self alignment */

      --layout-self-start: {
        -ms-align-self: flex-start;
        -webkit-align-self: flex-start;
        align-self: flex-start;
      };

      --layout-self-center: {
        -ms-align-self: center;
        -webkit-align-self: center;
        align-self: center;
      };

      --layout-self-end: {
        -ms-align-self: flex-end;
        -webkit-align-self: flex-end;
        align-self: flex-end;
      };

      --layout-self-stretch: {
        -ms-align-self: stretch;
        -webkit-align-self: stretch;
        align-self: stretch;
      };

      --layout-self-baseline: {
        -ms-align-self: baseline;
        -webkit-align-self: baseline;
        align-self: baseline;
      };

      /* multi-line alignment in main axis */

      --layout-start-aligned: {
        -ms-flex-line-pack: start;  /* IE10 */
        -ms-align-content: flex-start;
        -webkit-align-content: flex-start;
        align-content: flex-start;
      };

      --layout-end-aligned: {
        -ms-flex-line-pack: end;  /* IE10 */
        -ms-align-content: flex-end;
        -webkit-align-content: flex-end;
        align-content: flex-end;
      };

      --layout-center-aligned: {
        -ms-flex-line-pack: center;  /* IE10 */
        -ms-align-content: center;
        -webkit-align-content: center;
        align-content: center;
      };

      --layout-between-aligned: {
        -ms-flex-line-pack: justify;  /* IE10 */
        -ms-align-content: space-between;
        -webkit-align-content: space-between;
        align-content: space-between;
      };

      --layout-around-aligned: {
        -ms-flex-line-pack: distribute;  /* IE10 */
        -ms-align-content: space-around;
        -webkit-align-content: space-around;
        align-content: space-around;
      };

      /*******************************
                Other Layout
      *******************************/

      --layout-block: {
        display: block;
      };

      --layout-invisible: {
        visibility: hidden !important;
      };

      --layout-relative: {
        position: relative;
      };

      --layout-fit: {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
      };

      --layout-scroll: {
        -webkit-overflow-scrolling: touch;
        overflow: auto;
      };

      --layout-fullbleed: {
        margin: 0;
        height: 100vh;
      };

      /* fixed position */

      --layout-fixed-top: {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
      };

      --layout-fixed-right: {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
      };

      --layout-fixed-bottom: {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
      };

      --layout-fixed-left: {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
      };

    }
  </style>
</custom-style>`;ro.setAttribute("style","display: none;"),document.head.appendChild(ro.content);var oo=document.createElement("style");oo.textContent="[hidden] { display: none !important; }",document.head.appendChild(oo);class ao{constructor(e){ao[" "](e),this.type=e&&e.type||"default",this.key=e&&e.key,e&&"value"in e&&(this.value=e.value)}get value(){var e=this.type,t=this.key;if(e&&t)return ao.types[e]&&ao.types[e][t]}set value(e){var t=this.type,n=this.key;t&&n&&(t=ao.types[t]=ao.types[t]||{},null==e?delete t[n]:t[n]=e)}get list(){if(this.type){var e=ao.types[this.type];return e?Object.keys(e).map((function(e){return so[this.type][e]}),this):[]}}byKey(e){return this.key=e,this.value}}ao[" "]=function(){},ao.types={};var so=ao.types;xr({is:"iron-meta",properties:{type:{type:String,value:"default"},key:{type:String},value:{type:String,notify:!0},self:{type:Boolean,observer:"_selfChanged"},__meta:{type:Boolean,computed:"__computeMeta(type, key, value)"}},hostAttributes:{hidden:!0},__computeMeta:function(e,t,n){var i=new ao({type:e,key:t});return void 0!==n&&n!==i.value?i.value=n:this.value!==i.value&&(this.value=i.value),i},get list(){return this.__meta&&this.__meta.list},_selfChanged:function(e){e&&(this.value=this)},byKey:function(e){return new ao({type:this.type,key:e}).value}}),xr({_template:Ot`
    <style>
      :host {
        @apply --layout-inline;
        @apply --layout-center-center;
        position: relative;

        vertical-align: middle;

        fill: var(--iron-icon-fill-color, currentcolor);
        stroke: var(--iron-icon-stroke-color, none);

        width: var(--iron-icon-width, 24px);
        height: var(--iron-icon-height, 24px);
        @apply --iron-icon;
      }

      :host([hidden]) {
        display: none;
      }
    </style>
`,is:"iron-icon",properties:{icon:{type:String},theme:{type:String},src:{type:String},_meta:{value:eo.create("iron-meta",{type:"iconset"})}},observers:["_updateIcon(_meta, isAttached)","_updateIcon(theme, isAttached)","_srcChanged(src, isAttached)","_iconChanged(icon, isAttached)"],_DEFAULT_ICONSET:"icons",_iconChanged:function(e){var t=(e||"").split(":");this._iconName=t.pop(),this._iconsetName=t.pop()||this._DEFAULT_ICONSET,this._updateIcon()},_srcChanged:function(e){this._updateIcon()},_usesIconset:function(){return this.icon||!this.src},_updateIcon:function(){this._usesIconset()?(this._img&&this._img.parentNode&&rr(this.root).removeChild(this._img),""===this._iconName?this._iconset&&this._iconset.removeIcon(this):this._iconsetName&&this._meta&&(this._iconset=this._meta.byKey(this._iconsetName),this._iconset?(this._iconset.applyIcon(this,this._iconName,this.theme),this.unlisten(window,"iron-iconset-added","_updateIcon")):this.listen(window,"iron-iconset-added","_updateIcon"))):(this._iconset&&this._iconset.removeIcon(this),this._img||(this._img=document.createElement("img"),this._img.style.width="100%",this._img.style.height="100%",this._img.draggable=!1),this._img.src=this.src,rr(this.root).appendChild(this._img))}}),xr({is:"iron-iconset-svg",properties:{name:{type:String,observer:"_nameChanged"},size:{type:Number,value:24},rtlMirroring:{type:Boolean,value:!1},useGlobalRtlAttribute:{type:Boolean,value:!1}},created:function(){this._meta=new ao({type:"iconset",key:null,value:null})},attached:function(){this.style.display="none"},getIconNames:function(){return this._icons=this._createIconMap(),Object.keys(this._icons).map((function(e){return this.name+":"+e}),this)},applyIcon:function(e,t){this.removeIcon(e);var n=this._cloneIcon(t,this.rtlMirroring&&this._targetIsRTL(e));if(n){var i=rr(e.root||e);return i.insertBefore(n,i.childNodes[0]),e._svgIcon=n}return null},removeIcon:function(e){e._svgIcon&&(rr(e.root||e).removeChild(e._svgIcon),e._svgIcon=null)},_targetIsRTL:function(e){if(null==this.__targetIsRTL)if(this.useGlobalRtlAttribute){var t=document.body&&document.body.hasAttribute("dir")?document.body:document.documentElement;this.__targetIsRTL="rtl"===t.getAttribute("dir")}else e&&e.nodeType!==Node.ELEMENT_NODE&&(e=e.host),this.__targetIsRTL=e&&"rtl"===window.getComputedStyle(e).direction;return this.__targetIsRTL},_nameChanged:function(){this._meta.value=null,this._meta.key=this.name,this._meta.value=this,this.async((function(){this.fire("iron-iconset-added",this,{node:window})}))},_createIconMap:function(){var e=Object.create(null);return rr(this).querySelectorAll("[id]").forEach((function(t){e[t.id]=t})),e},_cloneIcon:function(e,t){return this._icons=this._icons||this._createIconMap(),this._prepareSvgClone(this._icons[e],this.size,t)},_prepareSvgClone:function(e,t,n){if(e){var i=e.cloneNode(!0),r=document.createElementNS("http://www.w3.org/2000/svg","svg"),o=i.getAttribute("viewBox")||"0 0 "+t+" "+t,a="pointer-events: none; display: block; width: 100%; height: 100%;";return n&&i.hasAttribute("mirror-in-rtl")&&(a+="-webkit-transform:scale(-1,1);transform:scale(-1,1);transform-origin:center;"),r.setAttribute("viewBox",o),r.setAttribute("preserveAspectRatio","xMidYMid meet"),r.setAttribute("focusable","false"),r.style.cssText=a,r.appendChild(i).removeAttribute("id"),r}return null}});const lo=Ot`<iron-iconset-svg name="image" size="24">
<svg><defs>
<g id="add-a-photo"><path d="M3 4V1h2v3h3v2H5v3H3V6H0V4h3zm3 6V7h3V4h7l1.83 2H21c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V10h3zm7 9c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-3.2-5c0 1.77 1.43 3.2 3.2 3.2s3.2-1.43 3.2-3.2-1.43-3.2-3.2-3.2-3.2 1.43-3.2 3.2z"></path></g>
<g id="add-to-photos"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"></path></g>
<g id="adjust"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z"></path></g>
<g id="assistant"><path d="M19 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5.12 10.88L12 17l-1.88-4.12L6 11l4.12-1.88L12 5l1.88 4.12L18 11l-4.12 1.88z"></path></g>
<g id="assistant-photo"><path d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"></path></g>
<g id="audiotrack"><path d="M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z"></path></g>
<g id="blur-circular"><path d="M10 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM7 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-3-3c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3-6c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-1.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm3 6c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-4c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm2-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-3.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"></path></g>
<g id="blur-linear"><path d="M5 17.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 13c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM3 21h18v-2H3v2zM5 9.5c.83 0 1.5-.67 1.5-1.5S5.83 6.5 5 6.5 3.5 7.17 3.5 8 4.17 9.5 5 9.5zm0 4c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 17c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8-.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM3 3v2h18V3H3zm14 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm0 4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM13 9c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z"></path></g>
<g id="blur-off"><path d="M14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-.2 4.48l.2.02c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5l.02.2c.09.67.61 1.19 1.28 1.28zM14 3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-4 0c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm11 7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8 8c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 13.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM2.5 5.27l3.78 3.78L6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l2.81 2.81c-.71.11-1.25.73-1.25 1.47 0 .83.67 1.5 1.5 1.5.74 0 1.36-.54 1.47-1.25l2.81 2.81c-.09-.03-.18-.06-.28-.06-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l3.78 3.78L20 20.23 3.77 4 2.5 5.27zM10 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm11-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM3 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 11c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"></path></g>
<g id="blur-on"><path d="M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"></path></g>
<g id="brightness-1"><circle cx="12" cy="12" r="10"></circle></g>
<g id="brightness-2"><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"></path></g>
<g id="brightness-3"><path d="M9 2c-1.05 0-2.05.16-3 .46 4.06 1.27 7 5.06 7 9.54 0 4.48-2.94 8.27-7 9.54.95.3 1.95.46 3 .46 5.52 0 10-4.48 10-10S14.52 2 9 2z"></path></g>
<g id="brightness-4"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"></path></g>
<g id="brightness-5"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"></path></g>
<g id="brightness-6"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"></path></g>
<g id="brightness-7"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"></path></g>
<g id="broken-image"><path d="M21 5v6.59l-3-3.01-4 4.01-4-4-4 4-3-3.01V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2zm-3 6.42l3 3.01V19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-6.58l3 2.99 4-4 4 4 4-3.99z"></path></g>
<g id="brush"><path d="M7 14c-1.66 0-3 1.34-3 3 0 1.31-1.16 2-2 2 .92 1.22 2.49 2 4 2 2.21 0 4-1.79 4-4 0-1.66-1.34-3-3-3zm13.71-9.37l-1.34-1.34c-.39-.39-1.02-.39-1.41 0L9 12.25 11.75 15l8.96-8.96c.39-.39.39-1.02 0-1.41z"></path></g>
<g id="burst-mode"><path d="M1 5h2v14H1zm4 0h2v14H5zm17 0H10c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM11 17l2.5-3.15L15.29 16l2.5-3.22L21 17H11z"></path></g>
<g id="camera"><path d="M9.4 10.5l4.77-8.26C13.47 2.09 12.75 2 12 2c-2.4 0-4.6.85-6.32 2.25l3.66 6.35.06-.1zM21.54 9c-.92-2.92-3.15-5.26-6-6.34L11.88 9h9.66zm.26 1h-7.49l.29.5 4.76 8.25C21 16.97 22 14.61 22 12c0-.69-.07-1.35-.2-2zM8.54 12l-3.9-6.75C3.01 7.03 2 9.39 2 12c0 .69.07 1.35.2 2h7.49l-1.15-2zm-6.08 3c.92 2.92 3.15 5.26 6 6.34L12.12 15H2.46zm11.27 0l-3.9 6.76c.7.15 1.42.24 2.17.24 2.4 0 4.6-.85 6.32-2.25l-3.66-6.35-.93 1.6z"></path></g>
<g id="camera-alt"><circle cx="12" cy="12" r="3.2"></circle><path d="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"></path></g>
<g id="camera-front"><path d="M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zM12 8c1.1 0 2-.9 2-2s-.9-2-2-2-1.99.9-1.99 2S10.9 8 12 8zm5-8H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 2h10v10.5c0-1.67-3.33-2.5-5-2.5s-5 .83-5 2.5V2z"></path></g>
<g id="camera-rear"><path d="M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zm3-20H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-5 6c-1.11 0-2-.9-2-2s.89-2 1.99-2 2 .9 2 2C14 5.1 13.1 6 12 6z"></path></g>
<g id="camera-roll"><path d="M14 5c0-1.1-.9-2-2-2h-1V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2h8V5h-8zm-2 13h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2z"></path></g>
<g id="center-focus-strong"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-7 7H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4z"></path></g>
<g id="center-focus-weak"><path d="M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"></path></g>
<g id="collections"><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"></path></g>
<g id="collections-bookmark"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 10l-2.5-1.5L15 12V4h5v8z"></path></g>
<g id="color-lens"><path d="M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"></path></g>
<g id="colorize"><path d="M20.71 5.63l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"></path></g>
<g id="compare"><path d="M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v2h2V1h-2v2zm0 15H5l5-6v6zm9-15h-5v2h5v13l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path></g>
<g id="control-point"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="control-point-duplicate"><path d="M16 8h-2v3h-3v2h3v3h2v-3h3v-2h-3zM2 12c0-2.79 1.64-5.2 4.01-6.32V3.52C2.52 4.76 0 8.09 0 12s2.52 7.24 6.01 8.48v-2.16C3.64 17.2 2 14.79 2 12zm13-9c-4.96 0-9 4.04-9 9s4.04 9 9 9 9-4.04 9-9-4.04-9-9-9zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7z"></path></g>
<g id="crop"><path d="M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z"></path></g>
<g id="crop-16-9"><path d="M19 6H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H5V8h14v8z"></path></g>
<g id="crop-3-2"><path d="M19 4H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12z"></path></g>
<g id="crop-5-4"><path d="M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z"></path></g>
<g id="crop-7-5"><path d="M19 7H5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8H5V9h14v6z"></path></g>
<g id="crop-din"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"></path></g>
<g id="crop-free"><path d="M3 5v4h2V5h4V3H5c-1.1 0-2 .9-2 2zm2 10H3v4c0 1.1.9 2 2 2h4v-2H5v-4zm14 4h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zm0-16h-4v2h4v4h2V5c0-1.1-.9-2-2-2z"></path></g>
<g id="crop-landscape"><path d="M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z"></path></g>
<g id="crop-original"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-5.04-6.71l-2.75 3.54-1.96-2.36L6.5 17h11l-3.54-4.71z"></path></g>
<g id="crop-portrait"><path d="M17 3H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7V5h10v14z"></path></g>
<g id="crop-rotate"><path d="M7.47 21.49C4.2 19.93 1.86 16.76 1.5 13H0c.51 6.16 5.66 11 11.95 11 .23 0 .44-.02.66-.03L8.8 20.15l-1.33 1.34zM12.05 0c-.23 0-.44.02-.66.04l3.81 3.81 1.33-1.33C19.8 4.07 22.14 7.24 22.5 11H24c-.51-6.16-5.66-11-11.95-11zM16 14h2V8c0-1.11-.9-2-2-2h-6v2h6v6zm-8 2V4H6v2H4v2h2v8c0 1.1.89 2 2 2h8v2h2v-2h2v-2H8z"></path></g>
<g id="crop-square"><path d="M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H6V6h12v12z"></path></g>
<g id="dehaze"><path d="M2 15.5v2h20v-2H2zm0-5v2h20v-2H2zm0-5v2h20v-2H2z"></path></g>
<g id="details"><path d="M3 4l9 16 9-16H3zm3.38 2h11.25L12 16 6.38 6z"></path></g>
<g id="edit"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"></path></g>
<g id="exposure"><path d="M15 17v2h2v-2h2v-2h-2v-2h-2v2h-2v2h2zm5-15H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM5 5h6v2H5V5zm15 15H4L20 4v16z"></path></g>
<g id="exposure-neg-1"><path d="M4 11v2h8v-2H4zm15 7h-2V7.38L14 8.4V6.7L18.7 5h.3v13z"></path></g>
<g id="exposure-neg-2"><path d="M15.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17s.19-.79.19-1.18c0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71-.51-.16-1.08-.24-1.72-.24-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H21v-1.71h-5.95zM2 11v2h8v-2H2z"></path></g>
<g id="exposure-plus-1"><path d="M10 7H8v4H4v2h4v4h2v-4h4v-2h-4V7zm10 11h-2V7.38L15 8.4V6.7L19.7 5h.3v13z"></path></g>
<g id="exposure-plus-2"><path d="M16.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17.13-.39.19-.79.19-1.18 0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71-.51-.16-1.08-.24-1.72-.24-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H22v-1.71h-5.95zM8 7H6v4H2v2h4v4h2v-4h4v-2H8V7z"></path></g>
<g id="exposure-zero"><path d="M16.14 12.5c0 1-.1 1.85-.3 2.55-.2.7-.48 1.27-.83 1.7-.36.44-.79.75-1.3.95-.51.2-1.07.3-1.7.3-.62 0-1.18-.1-1.69-.3-.51-.2-.95-.51-1.31-.95-.36-.44-.65-1.01-.85-1.7-.2-.7-.3-1.55-.3-2.55v-2.04c0-1 .1-1.85.3-2.55.2-.7.48-1.26.84-1.69.36-.43.8-.74 1.31-.93C10.81 5.1 11.38 5 12 5c.63 0 1.19.1 1.7.29.51.19.95.5 1.31.93.36.43.64.99.84 1.69.2.7.3 1.54.3 2.55v2.04zm-2.11-2.36c0-.64-.05-1.18-.13-1.62-.09-.44-.22-.79-.4-1.06-.17-.27-.39-.46-.64-.58-.25-.13-.54-.19-.86-.19-.32 0-.61.06-.86.18s-.47.31-.64.58c-.17.27-.31.62-.4 1.06s-.13.98-.13 1.62v2.67c0 .64.05 1.18.14 1.62.09.45.23.81.4 1.09s.39.48.64.61.54.19.87.19c.33 0 .62-.06.87-.19s.46-.33.63-.61c.17-.28.3-.64.39-1.09.09-.45.13-.99.13-1.62v-2.66z"></path></g>
<g id="filter"><path d="M15.96 10.29l-2.75 3.54-1.96-2.36L8.5 15h11l-3.54-4.71zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"></path></g>
<g id="filter-1"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"></path></g>
<g id="filter-2"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"></path></g>
<g id="filter-3"><path d="M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"></path></g>
<g id="filter-4"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"></path></g>
<g id="filter-5"><path d="M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"></path></g>
<g id="filter-6"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2c1.1 0 2-.89 2-2v-2c0-1.11-.9-2-2-2h-2V7h4V5h-4c-1.1 0-2 .89-2 2v6c0 1.11.9 2 2 2zm0-4h2v2h-2v-2z"></path></g>
<g id="filter-7"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2l4-8V5h-6v2h4l-4 8h2z"></path></g>
<g id="filter-8"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2c1.1 0 2-.89 2-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-2c-1.1 0-2 .89-2 2v1.5c0 .83.67 1.5 1.5 1.5-.83 0-1.5.67-1.5 1.5V13c0 1.11.9 2 2 2zm0-8h2v2h-2V7zm0 4h2v2h-2v-2z"></path></g>
<g id="filter-9"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM15 5h-2c-1.1 0-2 .89-2 2v2c0 1.11.9 2 2 2h2v2h-4v2h4c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2zm0 4h-2V7h2v2z"></path></g>
<g id="filter-9-plus"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 7V8c0-1.11-.9-2-2-2h-1c-1.1 0-2 .89-2 2v1c0 1.11.9 2 2 2h1v1H9v2h3c1.1 0 2-.89 2-2zm-3-3V8h1v1h-1zm10-8H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 8h-2V7h-2v2h-2v2h2v2h2v-2h2v6H7V3h14v6z"></path></g>
<g id="filter-b-and-w"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16l-7-8v8H5l7-8V5h7v14z"></path></g>
<g id="filter-center-focus"><path d="M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"></path></g>
<g id="filter-drama"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.61 5.64 5.36 8.04 2.35 8.36 0 10.9 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4h2c0-2.76-1.86-5.08-4.4-5.78C8.61 6.88 10.2 6 12 6c3.03 0 5.5 2.47 5.5 5.5v.5H19c1.65 0 3 1.35 3 3s-1.35 3-3 3z"></path></g>
<g id="filter-frames"><path d="M20 4h-4l-4-4-4 4H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H4V6h4.52l3.52-3.5L15.52 6H20v14zM18 8H6v10h12"></path></g>
<g id="filter-hdr"><path d="M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"></path></g>
<g id="filter-none"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"></path></g>
<g id="filter-tilt-shift"><path d="M11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69c1.11-.86 2.44-1.44 3.9-1.62zm7.32.19C16.84 3.05 15.01 2.25 13 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1c.86 1.11 1.44 2.44 1.62 3.9zM5.69 7.1L4.26 5.68C3.05 7.16 2.25 8.99 2.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43c-.86-1.1-1.44-2.43-1.62-3.89zM15 12c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm3.31 4.9l1.43 1.43c1.21-1.48 2.01-3.32 2.21-5.32h-2.02c-.18 1.45-.76 2.78-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zm-7.32-.19C7.16 20.95 9 21.75 11 21.95v-2.02c-1.46-.18-2.79-.76-3.9-1.62l-1.42 1.43z"></path></g>
<g id="filter-vintage"><path d="M18.7 12.4c-.28-.16-.57-.29-.86-.4.29-.11.58-.24.86-.4 1.92-1.11 2.99-3.12 3-5.19-1.79-1.03-4.07-1.11-6 0-.28.16-.54.35-.78.54.05-.31.08-.63.08-.95 0-2.22-1.21-4.15-3-5.19C10.21 1.85 9 3.78 9 6c0 .32.03.64.08.95-.24-.2-.5-.39-.78-.55-1.92-1.11-4.2-1.03-6 0 0 2.07 1.07 4.08 3 5.19.28.16.57.29.86.4-.29.11-.58.24-.86.4-1.92 1.11-2.99 3.12-3 5.19 1.79 1.03 4.07 1.11 6 0 .28-.16.54-.35.78-.54-.05.32-.08.64-.08.96 0 2.22 1.21 4.15 3 5.19 1.79-1.04 3-2.97 3-5.19 0-.32-.03-.64-.08-.95.24.2.5.38.78.54 1.92 1.11 4.2 1.03 6 0-.01-2.07-1.08-4.08-3-5.19zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"></path></g>
<g id="flare"><path d="M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z"></path></g>
<g id="flash-auto"><path d="M3 2v12h3v9l7-12H9l4-9H3zm16 0h-2l-3.2 9h1.9l.7-2h3.2l.7 2h1.9L19 2zm-2.15 5.65L18 4l1.15 3.65h-2.3z"></path></g>
<g id="flash-off"><path d="M3.27 3L2 4.27l5 5V13h3v9l3.58-6.14L17.73 20 19 18.73 3.27 3zM17 10h-4l4-8H7v2.18l8.46 8.46L17 10z"></path></g>
<g id="flash-on"><path d="M7 2v11h3v9l7-12h-4l4-8z"></path></g>
<g id="flip"><path d="M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z"></path></g>
<g id="gradient"><path d="M11 9h2v2h-2zm-2 2h2v2H9zm4 0h2v2h-2zm2-2h2v2h-2zM7 9h2v2H7zm12-6H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 18H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm2-7h-2v2h2v2h-2v-2h-2v2h-2v-2h-2v2H9v-2H7v2H5v-2h2v-2H5V5h14v6z"></path></g>
<g id="grain"><path d="M10 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-4 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></g>
<g id="grid-off"><path d="M8 4v1.45l2 2V4h4v4h-3.45l2 2H14v1.45l2 2V10h4v4h-3.45l2 2H20v1.45l2 2V4c0-1.1-.9-2-2-2H4.55l2 2H8zm8 0h4v4h-4V4zM1.27 1.27L0 2.55l2 2V20c0 1.1.9 2 2 2h15.46l2 2 1.27-1.27L1.27 1.27zM10 12.55L11.45 14H10v-1.45zm-6-6L5.45 8H4V6.55zM8 20H4v-4h4v4zm0-6H4v-4h3.45l.55.55V14zm6 6h-4v-4h3.45l.55.54V20zm2 0v-1.46L17.46 20H16z"></path></g>
<g id="grid-on"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z"></path></g>
<g id="hdr-off"><path d="M17.5 15v-2h1.1l.9 2H21l-.9-2.1c.5-.2.9-.8.9-1.4v-1c0-.8-.7-1.5-1.5-1.5H16v4.9l1.1 1.1h.4zm0-4.5h2v1h-2v-1zm-4.5 0v.4l1.5 1.5v-1.9c0-.8-.7-1.5-1.5-1.5h-1.9l1.5 1.5h.4zm-3.5-1l-7-7-1.1 1L6.9 9h-.4v2h-2V9H3v6h1.5v-2.5h2V15H8v-4.9l1.5 1.5V15h3.4l7.6 7.6 1.1-1.1-12.1-12z"></path></g>
<g id="hdr-on"><path d="M21 11.5v-1c0-.8-.7-1.5-1.5-1.5H16v6h1.5v-2h1.1l.9 2H21l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2V9H3v6h1.5v-2.5h2V15H8V9H6.5v2zM13 9H9.5v6H13c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5h-2v-3h2v3z"></path></g>
<g id="hdr-strong"><path d="M17 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zM5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"></path></g>
<g id="hdr-weak"><path d="M5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm12-2c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"></path></g>
<g id="healing"><path d="M17.73 12.02l3.98-3.98c.39-.39.39-1.02 0-1.41l-4.34-4.34c-.39-.39-1.02-.39-1.41 0l-3.98 3.98L8 2.29C7.8 2.1 7.55 2 7.29 2c-.25 0-.51.1-.7.29L2.25 6.63c-.39.39-.39 1.02 0 1.41l3.98 3.98L2.25 16c-.39.39-.39 1.02 0 1.41l4.34 4.34c.39.39 1.02.39 1.41 0l3.98-3.98 3.98 3.98c.2.2.45.29.71.29.26 0 .51-.1.71-.29l4.34-4.34c.39-.39.39-1.02 0-1.41l-3.99-3.98zM12 9c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-4.71 1.96L3.66 7.34l3.63-3.63 3.62 3.62-3.62 3.63zM10 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2.66 9.34l-3.63-3.62 3.63-3.63 3.62 3.62-3.62 3.63z"></path></g>
<g id="image"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"></path></g>
<g id="image-aspect-ratio"><path d="M16 10h-2v2h2v-2zm0 4h-2v2h2v-2zm-8-4H6v2h2v-2zm4 0h-2v2h2v-2zm8-6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z"></path></g>
<g id="iso"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5.5 7.5h2v-2H9v2h2V9H9v2H7.5V9h-2V7.5zM19 19H5L19 5v14zm-2-2v-1.5h-5V17h5z"></path></g>
<g id="landscape"><path d="M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"></path></g>
<g id="leak-add"><path d="M6 3H3v3c1.66 0 3-1.34 3-3zm8 0h-2c0 4.97-4.03 9-9 9v2c6.08 0 11-4.93 11-11zm-4 0H8c0 2.76-2.24 5-5 5v2c3.87 0 7-3.13 7-7zm0 18h2c0-4.97 4.03-9 9-9v-2c-6.07 0-11 4.93-11 11zm8 0h3v-3c-1.66 0-3 1.34-3 3zm-4 0h2c0-2.76 2.24-5 5-5v-2c-3.87 0-7 3.13-7 7z"></path></g>
<g id="leak-remove"><path d="M10 3H8c0 .37-.04.72-.12 1.06l1.59 1.59C9.81 4.84 10 3.94 10 3zM3 4.27l2.84 2.84C5.03 7.67 4.06 8 3 8v2c1.61 0 3.09-.55 4.27-1.46L8.7 9.97C7.14 11.24 5.16 12 3 12v2c2.71 0 5.19-.99 7.11-2.62l2.5 2.5C10.99 15.81 10 18.29 10 21h2c0-2.16.76-4.14 2.03-5.69l1.43 1.43C14.55 17.91 14 19.39 14 21h2c0-1.06.33-2.03.89-2.84L19.73 21 21 19.73 4.27 3 3 4.27zM14 3h-2c0 1.5-.37 2.91-1.02 4.16l1.46 1.46C13.42 6.98 14 5.06 14 3zm5.94 13.12c.34-.08.69-.12 1.06-.12v-2c-.94 0-1.84.19-2.66.52l1.6 1.6zm-4.56-4.56l1.46 1.46C18.09 12.37 19.5 12 21 12v-2c-2.06 0-3.98.58-5.62 1.56z"></path></g>
<g id="lens"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"></path></g>
<g id="linked-camera"><circle cx="12" cy="14" r="3.2"></circle><path d="M16 3.33c2.58 0 4.67 2.09 4.67 4.67H22c0-3.31-2.69-6-6-6v1.33M16 6c1.11 0 2 .89 2 2h1.33c0-1.84-1.49-3.33-3.33-3.33V6"></path><path d="M17 9c0-1.11-.89-2-2-2V4H9L7.17 6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9h-5zm-5 10c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"></path></g>
<g id="looks"><path d="M12 10c-3.86 0-7 3.14-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.86-3.14-7-7-7zm0-4C5.93 6 1 10.93 1 17h2c0-4.96 4.04-9 9-9s9 4.04 9 9h2c0-6.07-4.93-11-11-11z"></path></g>
<g id="looks-3"><path d="M19.01 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 7.5c0 .83-.67 1.5-1.5 1.5.83 0 1.5.67 1.5 1.5V15c0 1.11-.9 2-2 2h-4v-2h4v-2h-2v-2h2V9h-4V7h4c1.1 0 2 .89 2 2v1.5z"></path></g>
<g id="looks-4"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 14h-2v-4H9V7h2v4h2V7h2v10z"></path></g>
<g id="looks-5"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2c1.1 0 2 .89 2 2v2c0 1.11-.9 2-2 2H9v-2h4v-2H9V7h6v2z"></path></g>
<g id="looks-6"><path d="M11 15h2v-2h-2v2zm8-12H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2c1.1 0 2 .89 2 2v2c0 1.11-.9 2-2 2h-2c-1.1 0-2-.89-2-2V9c0-1.11.9-2 2-2h4v2z"></path></g>
<g id="looks-one"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14h-2V9h-2V7h4v10z"></path></g>
<g id="looks-two"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 8c0 1.11-.9 2-2 2h-2v2h4v2H9v-4c0-1.11.9-2 2-2h2V9H9V7h4c1.1 0 2 .89 2 2v2z"></path></g>
<g id="loupe"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10h8c1.1 0 2-.9 2-2v-8c0-5.51-4.49-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="monochrome-photos"><path d="M20 5h-3.2L15 3H9L7.2 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14h-8v-1c-2.8 0-5-2.2-5-5s2.2-5 5-5V7h8v12zm-3-6c0-2.8-2.2-5-5-5v1.8c1.8 0 3.2 1.4 3.2 3.2s-1.4 3.2-3.2 3.2V18c2.8 0 5-2.2 5-5zm-8.2 0c0 1.8 1.4 3.2 3.2 3.2V9.8c-1.8 0-3.2 1.4-3.2 3.2z"></path></g>
<g id="movie-creation"><path d="M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"></path></g>
<g id="movie-filter"><path d="M18 4l2 3h-3l-2-3h-2l2 3h-3l-2-3H8l2 3H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4zm-6.75 11.25L10 18l-1.25-2.75L6 14l2.75-1.25L10 10l1.25 2.75L14 14l-2.75 1.25zm5.69-3.31L16 14l-.94-2.06L13 11l2.06-.94L16 8l.94 2.06L19 11l-2.06.94z"></path></g>
<g id="music-note"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"></path></g>
<g id="nature"><path d="M13 16.12c3.47-.41 6.17-3.36 6.17-6.95 0-3.87-3.13-7-7-7s-7 3.13-7 7c0 3.47 2.52 6.34 5.83 6.89V20H5v2h14v-2h-6v-3.88z"></path></g>
<g id="nature-people"><path d="M22.17 9.17c0-3.87-3.13-7-7-7s-7 3.13-7 7c0 3.47 2.52 6.34 5.83 6.89V20H6v-3h1v-4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4h1v5h16v-2h-3v-3.88c3.47-.41 6.17-3.36 6.17-6.95zM4.5 11c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z"></path></g>
<g id="navigate-before"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></g>
<g id="navigate-next"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path></g>
<g id="palette"><path d="M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"></path></g>
<g id="panorama"><path d="M23 18V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zM8.5 12.5l2.5 3.01L14.5 11l4.5 6H5l3.5-4.5z"></path></g>
<g id="panorama-fish-eye"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="panorama-horizontal"><path d="M20 6.54v10.91c-2.6-.77-5.28-1.16-8-1.16-2.72 0-5.4.39-8 1.16V6.54c2.6.77 5.28 1.16 8 1.16 2.72.01 5.4-.38 8-1.16M21.43 4c-.1 0-.2.02-.31.06C18.18 5.16 15.09 5.7 12 5.7c-3.09 0-6.18-.55-9.12-1.64-.11-.04-.22-.06-.31-.06-.34 0-.57.23-.57.63v14.75c0 .39.23.62.57.62.1 0 .2-.02.31-.06 2.94-1.1 6.03-1.64 9.12-1.64 3.09 0 6.18.55 9.12 1.64.11.04.21.06.31.06.33 0 .57-.23.57-.63V4.63c0-.4-.24-.63-.57-.63z"></path></g>
<g id="panorama-vertical"><path d="M19.94 21.12c-1.1-2.94-1.64-6.03-1.64-9.12 0-3.09.55-6.18 1.64-9.12.04-.11.06-.22.06-.31 0-.34-.23-.57-.63-.57H4.63c-.4 0-.63.23-.63.57 0 .1.02.2.06.31C5.16 5.82 5.71 8.91 5.71 12c0 3.09-.55 6.18-1.64 9.12-.05.11-.07.22-.07.31 0 .33.23.57.63.57h14.75c.39 0 .63-.24.63-.57-.01-.1-.03-.2-.07-.31zM6.54 20c.77-2.6 1.16-5.28 1.16-8 0-2.72-.39-5.4-1.16-8h10.91c-.77 2.6-1.16 5.28-1.16 8 0 2.72.39 5.4 1.16 8H6.54z"></path></g>
<g id="panorama-wide-angle"><path d="M12 6c2.45 0 4.71.2 7.29.64.47 1.78.71 3.58.71 5.36 0 1.78-.24 3.58-.71 5.36-2.58.44-4.84.64-7.29.64s-4.71-.2-7.29-.64C4.24 15.58 4 13.78 4 12c0-1.78.24-3.58.71-5.36C7.29 6.2 9.55 6 12 6m0-2c-2.73 0-5.22.24-7.95.72l-.93.16-.25.9C2.29 7.85 2 9.93 2 12s.29 4.15.87 6.22l.25.89.93.16c2.73.49 5.22.73 7.95.73s5.22-.24 7.95-.72l.93-.16.25-.89c.58-2.08.87-4.16.87-6.23s-.29-4.15-.87-6.22l-.25-.89-.93-.16C17.22 4.24 14.73 4 12 4z"></path></g>
<g id="photo"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"></path></g>
<g id="photo-album"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4zm0 15l3-3.86 2.14 2.58 3-3.86L18 19H6z"></path></g>
<g id="photo-camera"><circle cx="12" cy="12" r="3.2"></circle><path d="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"></path></g>
<g id="photo-filter"><path d="M19.02 10v9H5V5h9V3H5.02c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zM17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7l2.06.94zm-3.75.75L12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12z"></path></g>
<g id="photo-library"><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"></path></g>
<g id="photo-size-select-actual"><path d="M21 3H3C2 3 1 4 1 5v14c0 1.1.9 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zM5 17l3.5-4.5 2.5 3.01L14.5 11l4.5 6H5z"></path></g>
<g id="photo-size-select-large"><path d="M21 15h2v2h-2v-2zm0-4h2v2h-2v-2zm2 8h-2v2c1 0 2-1 2-2zM13 3h2v2h-2V3zm8 4h2v2h-2V7zm0-4v2h2c0-1-1-2-2-2zM1 7h2v2H1V7zm16-4h2v2h-2V3zm0 16h2v2h-2v-2zM3 3C2 3 1 4 1 5h2V3zm6 0h2v2H9V3zM5 3h2v2H5V3zm-4 8v8c0 1.1.9 2 2 2h12V11H1zm2 8l2.5-3.21 1.79 2.15 2.5-3.22L13 19H3z"></path></g>
<g id="photo-size-select-small"><path d="M23 15h-2v2h2v-2zm0-4h-2v2h2v-2zm0 8h-2v2c1 0 2-1 2-2zM15 3h-2v2h2V3zm8 4h-2v2h2V7zm-2-4v2h2c0-1-1-2-2-2zM3 21h8v-6H1v4c0 1.1.9 2 2 2zM3 7H1v2h2V7zm12 12h-2v2h2v-2zm4-16h-2v2h2V3zm0 16h-2v2h2v-2zM3 3C2 3 1 4 1 5h2V3zm0 8H1v2h2v-2zm8-8H9v2h2V3zM7 3H5v2h2V3z"></path></g>
<g id="picture-as-pdf"><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8.5 7.5c0 .83-.67 1.5-1.5 1.5H9v2H7.5V7H10c.83 0 1.5.67 1.5 1.5v1zm5 2c0 .83-.67 1.5-1.5 1.5h-2.5V7H15c.83 0 1.5.67 1.5 1.5v3zm4-3H19v1h1.5V11H19v2h-1.5V7h3v1.5zM9 9.5h1v-1H9v1zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm10 5.5h1v-3h-1v3z"></path></g>
<g id="portrait"><path d="M12 12.25c1.24 0 2.25-1.01 2.25-2.25S13.24 7.75 12 7.75 9.75 8.76 9.75 10s1.01 2.25 2.25 2.25zm4.5 4c0-1.5-3-2.25-4.5-2.25s-4.5.75-4.5 2.25V17h9v-.75zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"></path></g>
<g id="remove-red-eye"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"></path></g>
<g id="rotate-90-degrees-ccw"><path d="M7.34 6.41L.86 12.9l6.49 6.48 6.49-6.48-6.5-6.49zM3.69 12.9l3.66-3.66L11 12.9l-3.66 3.66-3.65-3.66zm15.67-6.26C17.61 4.88 15.3 4 13 4V.76L8.76 5 13 9.24V6c1.79 0 3.58.68 4.95 2.05 2.73 2.73 2.73 7.17 0 9.9C16.58 19.32 14.79 20 13 20c-.97 0-1.94-.21-2.84-.61l-1.49 1.49C10.02 21.62 11.51 22 13 22c2.3 0 4.61-.88 6.36-2.64 3.52-3.51 3.52-9.21 0-12.72z"></path></g>
<g id="rotate-left"><path d="M7.11 8.53L5.7 7.11C4.8 8.27 4.24 9.61 4.07 11h2.02c.14-.87.49-1.72 1.02-2.47zM6.09 13H4.07c.17 1.39.72 2.73 1.62 3.89l1.41-1.42c-.52-.75-.87-1.59-1.01-2.47zm1.01 5.32c1.16.9 2.51 1.44 3.9 1.61V17.9c-.87-.15-1.71-.49-2.46-1.03L7.1 18.32zM13 4.07V1L8.45 5.55 13 10V6.09c2.84.48 5 2.94 5 5.91s-2.16 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93s-3.05-7.44-7-7.93z"></path></g>
<g id="rotate-right"><path d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"></path></g>
<g id="slideshow"><path d="M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"></path></g>
<g id="straighten"><path d="M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H3V8h2v4h2V8h2v4h2V8h2v4h2V8h2v4h2V8h2v8z"></path></g>
<g id="style"><path d="M2.53 19.65l1.34.56v-9.03l-2.43 5.86c-.41 1.02.08 2.19 1.09 2.61zm19.5-3.7L17.07 3.98c-.31-.75-1.04-1.21-1.81-1.23-.26 0-.53.04-.79.15L7.1 5.95c-.75.31-1.21 1.03-1.23 1.8-.01.27.04.54.15.8l4.96 11.97c.31.76 1.05 1.22 1.83 1.23.26 0 .52-.05.77-.15l7.36-3.05c1.02-.42 1.51-1.59 1.09-2.6zM7.88 8.75c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-2 11c0 1.1.9 2 2 2h1.45l-3.45-8.34v6.34z"></path></g>
<g id="switch-camera"><path d="M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 11.5V13H9v2.5L5.5 12 9 8.5V11h6V8.5l3.5 3.5-3.5 3.5z"></path></g>
<g id="switch-video"><path d="M18 9.5V6c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.5l4 4v-13l-4 4zm-5 6V13H7v2.5L3.5 12 7 8.5V11h6V8.5l3.5 3.5-3.5 3.5z"></path></g>
<g id="tag-faces"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"></path></g>
<g id="texture"><path d="M19.51 3.08L3.08 19.51c.09.34.27.65.51.9.25.24.56.42.9.51L20.93 4.49c-.19-.69-.73-1.23-1.42-1.41zM11.88 3L3 11.88v2.83L14.71 3h-2.83zM5 3c-1.1 0-2 .9-2 2v2l4-4H5zm14 18c.55 0 1.05-.22 1.41-.59.37-.36.59-.86.59-1.41v-2l-4 4h2zm-9.71 0h2.83L21 12.12V9.29L9.29 21z"></path></g>
<g id="timelapse"><path d="M16.24 7.76C15.07 6.59 13.54 6 12 6v6l-4.24 4.24c2.34 2.34 6.14 2.34 8.49 0 2.34-2.34 2.34-6.14-.01-8.48zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g>
<g id="timer"><path d="M15 1H9v2h6V1zm-4 13h2V8h-2v6zm8.03-6.61l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"></path></g>
<g id="timer-10"><path d="M0 7.72V9.4l3-1V18h2V6h-.25L0 7.72zm23.78 6.65c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38c-.35-.07-.64-.15-.87-.23-.23-.08-.41-.16-.55-.25-.14-.09-.23-.19-.28-.3-.05-.11-.08-.24-.08-.39 0-.14.03-.28.09-.41.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95c0-.39-.08-.75-.24-1.09-.16-.34-.39-.63-.69-.88-.3-.25-.66-.44-1.09-.59C21.49 9.07 21 9 20.46 9c-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.69.23.96c.15.28.36.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24-.17-.11-.3-.26-.41-.44-.11-.18-.17-.41-.18-.67h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02zm-9.96-7.32c-.34-.4-.75-.7-1.23-.88-.47-.18-1.01-.27-1.59-.27-.58 0-1.11.09-1.59.27-.48.18-.89.47-1.23.88-.34.41-.6.93-.79 1.59-.18.65-.28 1.45-.28 2.39v1.92c0 .94.09 1.74.28 2.39.19.66.45 1.19.8 1.6.34.41.75.71 1.23.89.48.18 1.01.28 1.59.28.59 0 1.12-.09 1.59-.28.48-.18.88-.48 1.22-.89.34-.41.6-.94.78-1.6.18-.65.28-1.45.28-2.39v-1.92c0-.94-.09-1.74-.28-2.39-.18-.66-.44-1.19-.78-1.59zm-.92 6.17c0 .6-.04 1.11-.12 1.53-.08.42-.2.76-.36 1.02-.16.26-.36.45-.59.57-.23.12-.51.18-.82.18-.3 0-.58-.06-.82-.18s-.44-.31-.6-.57c-.16-.26-.29-.6-.38-1.02-.09-.42-.13-.93-.13-1.53v-2.5c0-.6.04-1.11.13-1.52.09-.41.21-.74.38-1 .16-.25.36-.43.6-.55.24-.11.51-.17.81-.17.31 0 .58.06.81.17.24.11.44.29.6.55.16.25.29.58.37.99.08.41.13.92.13 1.52v2.51z"></path></g>
<g id="timer-3"><path d="M11.61 12.97c-.16-.24-.36-.46-.62-.65-.25-.19-.56-.35-.93-.48.3-.14.57-.3.8-.5.23-.2.42-.41.57-.64.15-.23.27-.46.34-.71.08-.24.11-.49.11-.73 0-.55-.09-1.04-.28-1.46-.18-.42-.44-.77-.78-1.06-.33-.28-.73-.5-1.2-.64-.45-.13-.97-.2-1.53-.2-.55 0-1.06.08-1.52.24-.47.17-.87.4-1.2.69-.33.29-.6.63-.78 1.03-.2.39-.29.83-.29 1.29h1.98c0-.26.05-.49.14-.69.09-.2.22-.38.38-.52.17-.14.36-.25.58-.33.22-.08.46-.12.73-.12.61 0 1.06.16 1.36.47.3.31.44.75.44 1.32 0 .27-.04.52-.12.74-.08.22-.21.41-.38.57-.17.16-.38.28-.63.37-.25.09-.55.13-.89.13H6.72v1.57H7.9c.34 0 .64.04.91.11.27.08.5.19.69.35.19.16.34.36.44.61.1.24.16.54.16.87 0 .62-.18 1.09-.53 1.42-.35.33-.84.49-1.45.49-.29 0-.56-.04-.8-.13-.24-.08-.44-.2-.61-.36-.17-.16-.3-.34-.39-.56-.09-.22-.14-.46-.14-.72H4.19c0 .55.11 1.03.32 1.45.21.42.5.77.86 1.05s.77.49 1.24.63.96.21 1.48.21c.57 0 1.09-.08 1.58-.23.49-.15.91-.38 1.26-.68.36-.3.64-.66.84-1.1.2-.43.3-.93.3-1.48 0-.29-.04-.58-.11-.86-.08-.25-.19-.51-.35-.76zm9.26 1.4c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38c-.35-.07-.64-.15-.87-.23-.23-.08-.41-.16-.55-.25-.14-.09-.23-.19-.28-.3-.05-.11-.08-.24-.08-.39s.03-.28.09-.41c.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95c0-.39-.08-.75-.24-1.09-.16-.34-.39-.63-.69-.88-.3-.25-.66-.44-1.09-.59-.43-.15-.92-.22-1.46-.22-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.68.23.96c.15.28.37.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24-.17-.11-.3-.26-.41-.44-.11-.18-.17-.41-.18-.67h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02z"></path></g>
<g id="timer-off"><path d="M19.04 4.55l-1.42 1.42C16.07 4.74 14.12 4 12 4c-1.83 0-3.53.55-4.95 1.48l1.46 1.46C9.53 6.35 10.73 6 12 6c3.87 0 7 3.13 7 7 0 1.27-.35 2.47-.94 3.49l1.45 1.45C20.45 16.53 21 14.83 21 13c0-2.12-.74-4.07-1.97-5.61l1.42-1.42-1.41-1.42zM15 1H9v2h6V1zm-4 8.44l2 2V8h-2v1.44zM3.02 4L1.75 5.27 4.5 8.03C3.55 9.45 3 11.16 3 13c0 4.97 4.02 9 9 9 1.84 0 3.55-.55 4.98-1.5l2.5 2.5 1.27-1.27-7.71-7.71L3.02 4zM12 20c-3.87 0-7-3.13-7-7 0-1.28.35-2.48.95-3.52l9.56 9.56c-1.03.61-2.23.96-3.51.96z"></path></g>
<g id="tonality"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.94-.49-7-3.85-7-7.93s3.05-7.44 7-7.93v15.86zm2-15.86c1.03.13 2 .45 2.87.93H13v-.93zM13 7h5.24c.25.31.48.65.68 1H13V7zm0 3h6.74c.08.33.15.66.19 1H13v-1zm0 9.93V19h2.87c-.87.48-1.84.8-2.87.93zM18.24 17H13v-1h5.92c-.2.35-.43.69-.68 1zm1.5-3H13v-1h6.93c-.04.34-.11.67-.19 1z"></path></g>
<g id="transform"><path d="M22 18v-2H8V4h2L7 1 4 4h2v2H2v2h4v8c0 1.1.9 2 2 2h8v2h-2l3 3 3-3h-2v-2h4zM10 8h6v6h2V8c0-1.1-.9-2-2-2h-6v2z"></path></g>
<g id="tune"><path d="M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z"></path></g>
<g id="view-comfy"><path d="M3 9h4V5H3v4zm0 5h4v-4H3v4zm5 0h4v-4H8v4zm5 0h4v-4h-4v4zM8 9h4V5H8v4zm5-4v4h4V5h-4zm5 9h4v-4h-4v4zM3 19h4v-4H3v4zm5 0h4v-4H8v4zm5 0h4v-4h-4v4zm5 0h4v-4h-4v4zm0-14v4h4V5h-4z"></path></g>
<g id="view-compact"><path d="M3 19h6v-7H3v7zm7 0h12v-7H10v7zM3 5v6h19V5H3z"></path></g>
<g id="vignette"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 15c-4.42 0-8-2.69-8-6s3.58-6 8-6 8 2.69 8 6-3.58 6-8 6z"></path></g>
<g id="wb-auto"><path d="M6.85 12.65h2.3L8 9l-1.15 3.65zM22 7l-1.2 6.29L19.3 7h-1.6l-1.49 6.29L15 7h-.76C12.77 5.17 10.53 4 8 4c-4.42 0-8 3.58-8 8s3.58 8 8 8c3.13 0 5.84-1.81 7.15-4.43l.1.43H17l1.5-6.1L20 16h1.75l2.05-9H22zm-11.7 9l-.7-2H6.4l-.7 2H3.8L7 7h2l3.2 9h-1.9z"></path></g>
<g id="wb-cloudy"><path d="M19.36 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.64-4.96z"></path></g>
<g id="wb-incandescent"><path d="M3.55 18.54l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8zM11 22.45h2V19.5h-2v2.95zM4 10.5H1v2h3v-2zm11-4.19V1.5H9v4.81C7.21 7.35 6 9.28 6 11.5c0 3.31 2.69 6 6 6s6-2.69 6-6c0-2.22-1.21-4.15-3-5.19zm5 4.19v2h3v-2h-3zm-2.76 7.66l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4z"></path></g>
<g id="wb-iridescent"><path d="M5 14.5h14v-6H5v6zM11 .55V3.5h2V.55h-2zm8.04 2.5l-1.79 1.79 1.41 1.41 1.8-1.79-1.42-1.41zM13 22.45V19.5h-2v2.95h2zm7.45-3.91l-1.8-1.79-1.41 1.41 1.79 1.8 1.42-1.42zM3.55 4.46l1.79 1.79 1.41-1.41-1.79-1.79-1.41 1.41zm1.41 15.49l1.79-1.8-1.41-1.41-1.79 1.79 1.41 1.42z"></path></g>
<g id="wb-sunny"><path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"></path></g>
</defs></svg>
</iron-iconset-svg>`;document.head.appendChild(lo.content);const co=Ot`<iron-iconset-svg name="icons" size="24">
<svg><defs>
<g id="3d-rotation"><path d="M7.52 21.48C4.25 19.94 1.91 16.76 1.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32zm.89-6.52c-.19 0-.37-.03-.52-.08-.16-.06-.29-.13-.4-.24-.11-.1-.2-.22-.26-.37-.06-.14-.09-.3-.09-.47h-1.3c0 .36.07.68.21.95.14.27.33.5.56.69.24.18.51.32.82.41.3.1.62.15.96.15.37 0 .72-.05 1.03-.15.32-.1.6-.25.83-.44s.42-.43.55-.72c.13-.29.2-.61.2-.97 0-.19-.02-.38-.07-.56-.05-.18-.12-.35-.23-.51-.1-.16-.24-.3-.4-.43-.17-.13-.37-.23-.61-.31.2-.09.37-.2.52-.33.15-.13.27-.27.37-.42.1-.15.17-.3.22-.46.05-.16.07-.32.07-.48 0-.36-.06-.68-.18-.96-.12-.28-.29-.51-.51-.69-.2-.19-.47-.33-.77-.43C9.1 8.05 8.76 8 8.39 8c-.36 0-.69.05-1 .16-.3.11-.57.26-.79.45-.21.19-.38.41-.51.67-.12.26-.18.54-.18.85h1.3c0-.17.03-.32.09-.45s.14-.25.25-.34c.11-.09.23-.17.38-.22.15-.05.3-.08.48-.08.4 0 .7.1.89.31.19.2.29.49.29.86 0 .18-.03.34-.08.49-.05.15-.14.27-.25.37-.11.1-.25.18-.41.24-.16.06-.36.09-.58.09H7.5v1.03h.77c.22 0 .42.02.6.07s.33.13.45.23c.12.11.22.24.29.4.07.16.1.35.1.57 0 .41-.12.72-.35.93-.23.23-.55.33-.95.33zm8.55-5.92c-.32-.33-.7-.59-1.14-.77-.43-.18-.92-.27-1.46-.27H12v8h2.3c.55 0 1.06-.09 1.51-.27.45-.18.84-.43 1.16-.76.32-.33.57-.73.74-1.19.17-.47.26-.99.26-1.57v-.4c0-.58-.09-1.1-.26-1.57-.18-.47-.43-.87-.75-1.2zm-.39 3.16c0 .42-.05.79-.14 1.13-.1.33-.24.62-.43.85-.19.23-.43.41-.71.53-.29.12-.62.18-.99.18h-.91V9.12h.97c.72 0 1.27.23 1.64.69.38.46.57 1.12.57 1.99v.4zM12 0l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72 5.96 8.48h1.5C23.44 4.84 18.29 0 12 0z"></path></g>
<g id="accessibility"><path d="M12 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7h-6v13h-2v-6h-2v6H9V9H3V7h18v2z"></path></g>
<g id="accessible"><circle cx="12" cy="4" r="2"></circle><path d="M19 13v-2c-1.54.02-3.09-.75-4.07-1.83l-1.29-1.43c-.17-.19-.38-.34-.61-.45-.01 0-.01-.01-.02-.01H13c-.35-.2-.75-.3-1.19-.26C10.76 7.11 10 8.04 10 9.09V15c0 1.1.9 2 2 2h5v5h2v-5.5c0-1.1-.9-2-2-2h-3v-3.45c1.29 1.07 3.25 1.94 5 1.95zm-6.17 5c-.41 1.16-1.52 2-2.83 2-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1c-2.28.46-4 2.48-4 4.9 0 2.76 2.24 5 5 5 2.42 0 4.44-1.72 4.9-4h-2.07z"></path></g>
<g id="account-balance"><path d="M4 10v7h3v-7H4zm6 0v7h3v-7h-3zM2 22h19v-3H2v3zm14-12v7h3v-7h-3zm-4.5-9L2 6v2h19V6l-9.5-5z"></path></g>
<g id="account-balance-wallet"><path d="M21 18v1c0 1.1-.9 2-2 2H5c-1.11 0-2-.9-2-2V5c0-1.1.89-2 2-2h14c1.1 0 2 .9 2 2v1h-9c-1.11 0-2 .9-2 2v8c0 1.1.89 2 2 2h9zm-9-2h10V8H12v8zm4-2.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"></path></g>
<g id="account-box"><path d="M3 5v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5c-1.11 0-2 .9-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z"></path></g>
<g id="account-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"></path></g>
<g id="add"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path></g>
<g id="add-alert"><path d="M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-1.99h-3.98zm8.87-4.19V11c0-3.25-2.25-5.97-5.29-6.69v-.72C13.59 2.71 12.88 2 12 2s-1.59.71-1.59 1.59v.72C7.37 5.03 5.12 7.75 5.12 11v5.82L3 18.94V20h18v-1.06l-2.12-2.12zM16 13.01h-3v3h-2v-3H8V11h3V8h2v3h3v2.01z"></path></g>
<g id="add-box"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"></path></g>
<g id="add-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"></path></g>
<g id="add-circle-outline"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="add-shopping-cart"><path d="M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-9.83-3.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.11-.25-.25z"></path></g>
<g id="alarm"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"></path></g>
<g id="alarm-add"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"></path></g>
<g id="alarm-off"><path d="M12 6c3.87 0 7 3.13 7 7 0 .84-.16 1.65-.43 2.4l1.52 1.52c.58-1.19.91-2.51.91-3.92 0-4.97-4.03-9-9-9-1.41 0-2.73.33-3.92.91L9.6 6.43C10.35 6.16 11.16 6 12 6zm10-.28l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM2.92 2.29L1.65 3.57 2.98 4.9l-1.11.93 1.42 1.42 1.11-.94.8.8C3.83 8.69 3 10.75 3 13c0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.89-2.2l2.2 2.2 1.27-1.27L3.89 3.27l-.97-.98zm13.55 16.1C15.26 19.39 13.7 20 12 20c-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47l9.86 9.86zM8.02 3.28L6.6 1.86l-.86.71 1.42 1.42.86-.71z"></path></g>
<g id="alarm-on"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-1.46-5.47L8.41 12.4l-1.06 1.06 3.18 3.18 6-6-1.06-1.06-4.93 4.95z"></path></g>
<g id="all-out"><path d="M16.21 4.16l4 4v-4zm4 12l-4 4h4zm-12 4l-4-4v4zm-4-12l4-4h-4zm12.95-.95c-2.73-2.73-7.17-2.73-9.9 0s-2.73 7.17 0 9.9 7.17 2.73 9.9 0 2.73-7.16 0-9.9zm-1.1 8.8c-2.13 2.13-5.57 2.13-7.7 0s-2.13-5.57 0-7.7 5.57-2.13 7.7 0 2.13 5.57 0 7.7z"></path></g>
<g id="android"><path d="M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10zM3.5 8C2.67 8 2 8.67 2 9.5v7c0 .83.67 1.5 1.5 1.5S5 17.33 5 16.5v-7C5 8.67 4.33 8 3.5 8zm17 0c-.83 0-1.5.67-1.5 1.5v7c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-7c0-.83-.67-1.5-1.5-1.5zm-4.97-5.84l1.3-1.3c.2-.2.2-.51 0-.71-.2-.2-.51-.2-.71 0l-1.48 1.48C13.85 1.23 12.95 1 12 1c-.96 0-1.86.23-2.66.63L7.85.15c-.2-.2-.51-.2-.71 0-.2.2-.2.51 0 .71l1.31 1.31C6.97 3.26 6 5.01 6 7h12c0-1.99-.97-3.75-2.47-4.84zM10 5H9V4h1v1zm5 0h-1V4h1v1z"></path></g>
<g id="announcement"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z"></path></g>
<g id="apps"><path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z"></path></g>
<g id="archive"><path d="M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z"></path></g>
<g id="arrow-back"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"></path></g>
<g id="arrow-downward"><path d="M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"></path></g>
<g id="arrow-drop-down"><path d="M7 10l5 5 5-5z"></path></g>
<g id="arrow-drop-down-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 12l-4-4h8l-4 4z"></path></g>
<g id="arrow-drop-up"><path d="M7 14l5-5 5 5z"></path></g>
<g id="arrow-forward"><path d="M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"></path></g>
<g id="arrow-upward"><path d="M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"></path></g>
<g id="aspect-ratio"><path d="M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"></path></g>
<g id="assessment"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"></path></g>
<g id="assignment"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"></path></g>
<g id="assignment-ind"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 4c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1V19z"></path></g>
<g id="assignment-late"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6 15h-2v-2h2v2zm0-4h-2V8h2v6zm-1-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"></path></g>
<g id="assignment-return"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm4 12h-4v3l-5-5 5-5v3h4v4z"></path></g>
<g id="assignment-returned"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 15l-5-5h3V9h4v4h3l-5 5z"></path></g>
<g id="assignment-turned-in"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-2 14l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path></g>
<g id="attachment"><path d="M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z"></path></g>
<g id="autorenew"><path d="M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"></path></g>
<g id="backspace"><path d="M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z"></path></g>
<g id="backup"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path></g>
<g id="block"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z"></path></g>
<g id="book"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z"></path></g>
<g id="bookmark"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"></path></g>
<g id="bookmark-border"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z"></path></g>
<g id="bug-report"><path d="M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"></path></g>
<g id="build"><path d="M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"></path></g>
<g id="cached"><path d="M19 8l-4 4h3c0 3.31-2.69 6-6 6-1.01 0-1.97-.25-2.8-.7l-1.46 1.46C8.97 19.54 10.43 20 12 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46C15.03 4.46 13.57 4 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z"></path></g>
<g id="camera-enhance"><path d="M9 3L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2h-3.17L15 3H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-1l1.25-2.75L16 13l-2.75-1.25L12 9l-1.25 2.75L8 13l2.75 1.25z"></path></g>
<g id="cancel"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"></path></g>
<g id="card-giftcard"><path d="M20 6h-2.18c.11-.31.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"></path></g>
<g id="card-membership"><path d="M20 2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z"></path></g>
<g id="card-travel"><path d="M20 6h-3V4c0-1.11-.89-2-2-2H9c-1.11 0-2 .89-2 2v2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM9 4h6v2H9V4zm11 15H4v-2h16v2zm0-5H4V8h3v2h2V8h6v2h2V8h3v6z"></path></g>
<g id="change-history"><path d="M12 7.77L18.39 18H5.61L12 7.77M12 4L2 20h20L12 4z"></path></g>
<g id="check"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path></g>
<g id="check-box"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></path></g>
<g id="check-box-outline-blank"><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path></g>
<g id="check-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></path></g>
<g id="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></g>
<g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path></g>
<g id="chrome-reader-mode"><path d="M13 12h7v1.5h-7zm0-2.5h7V11h-7zm0 5h7V16h-7zM21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 15h-9V6h9v13z"></path></g>
<g id="class"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z"></path></g>
<g id="clear"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></g>
<g id="close"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></g>
<g id="cloud"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"></path></g>
<g id="cloud-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.5 14H8c-1.66 0-3-1.34-3-3s1.34-3 3-3l.14.01C8.58 8.28 10.13 7 12 7c2.21 0 4 1.79 4 4h.5c1.38 0 2.5 1.12 2.5 2.5S17.88 16 16.5 16z"></path></g>
<g id="cloud-done"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM10 17l-3.5-3.5 1.41-1.41L10 14.17 15.18 9l1.41 1.41L10 17z"></path></g>
<g id="cloud-download"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z"></path></g>
<g id="cloud-off"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46C10.21 6.23 11.08 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96zM3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4 3 5.27zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h1.73z"></path></g>
<g id="cloud-queue"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34 3-3 3z"></path></g>
<g id="cloud-upload"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path></g>
<g id="code"><path d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"></path></g>
<g id="compare-arrows"><path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"></path></g>
<g id="content-copy"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"></path></g>
<g id="content-cut"><path d="M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3z"></path></g>
<g id="content-paste"><path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"></path></g>
<g id="copyright"><path d="M10.08 10.86c.05-.33.16-.62.3-.87s.34-.46.59-.62c.24-.15.54-.22.91-.23.23.01.44.05.63.13.2.09.38.21.52.36s.25.33.34.53.13.42.14.64h1.79c-.02-.47-.11-.9-.28-1.29s-.4-.73-.7-1.01-.66-.5-1.08-.66-.88-.23-1.39-.23c-.65 0-1.22.11-1.7.34s-.88.53-1.2.92-.56.84-.71 1.36S8 11.29 8 11.87v.27c0 .58.08 1.12.23 1.64s.39.97.71 1.35.72.69 1.2.91 1.05.34 1.7.34c.47 0 .91-.08 1.32-.23s.77-.36 1.08-.63.56-.58.74-.94.29-.74.3-1.15h-1.79c-.01.21-.06.4-.15.58s-.21.33-.36.46-.32.23-.52.3c-.19.07-.39.09-.6.1-.36-.01-.66-.08-.89-.23-.25-.16-.45-.37-.59-.62s-.25-.55-.3-.88-.08-.67-.08-1v-.27c0-.35.03-.68.08-1.01zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="create"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"></path></g>
<g id="create-new-folder"><path d="M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"></path></g>
<g id="credit-card"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"></path></g>
<g id="dashboard"><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"></path></g>
<g id="date-range"><path d="M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"></path></g>
<g id="delete"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"></path></g>
<g id="delete-forever"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z"></path></g>
<g id="delete-sweep"><path d="M15 16h4v2h-4zm0-8h7v2h-7zm0 4h6v2h-6zM3 18c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V8H3v10zM14 5h-3l-1-1H6L5 5H2v2h12z"></path></g>
<g id="description"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"></path></g>
<g id="dns"><path d="M20 13H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"></path></g>
<g id="done"><path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"></path></g>
<g id="done-all"><path d="M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"></path></g>
<g id="donut-large"><path d="M11 5.08V2c-5 .5-9 4.81-9 10s4 9.5 9 10v-3.08c-3-.48-6-3.4-6-6.92s3-6.44 6-6.92zM18.97 11H22c-.47-5-4-8.53-9-9v3.08C16 5.51 18.54 8 18.97 11zM13 18.92V22c5-.47 8.53-4 9-9h-3.03c-.43 3-2.97 5.49-5.97 5.92z"></path></g>
<g id="donut-small"><path d="M11 9.16V2c-5 .5-9 4.79-9 10s4 9.5 9 10v-7.16c-1-.41-2-1.52-2-2.84s1-2.43 2-2.84zM14.86 11H22c-.48-4.75-4-8.53-9-9v7.16c1 .3 1.52.98 1.86 1.84zM13 14.84V22c5-.47 8.52-4.25 9-9h-7.14c-.34.86-.86 1.54-1.86 1.84z"></path></g>
<g id="drafts"><path d="M21.99 8c0-.72-.37-1.35-.94-1.7L12 1 2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zM12 13L3.74 7.84 12 3l8.26 4.84L12 13z"></path></g>
<g id="eject"><path d="M5 17h14v2H5zm7-12L5.33 15h13.34z"></path></g>
<g id="error"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"></path></g>
<g id="error-outline"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g>
<g id="euro-symbol"><path d="M15 18.5c-2.51 0-4.68-1.42-5.76-3.5H15v-2H8.58c-.05-.33-.08-.66-.08-1s.03-.67.08-1H15V9H9.24C10.32 6.92 12.5 5.5 15 5.5c1.61 0 3.09.59 4.23 1.57L21 5.3C19.41 3.87 17.3 3 15 3c-3.92 0-7.24 2.51-8.48 6H3v2h3.06c-.04.33-.06.66-.06 1 0 .34.02.67.06 1H3v2h3.52c1.24 3.49 4.56 6 8.48 6 2.31 0 4.41-.87 6-2.3l-1.78-1.77c-1.13.98-2.6 1.57-4.22 1.57z"></path></g>
<g id="event"><path d="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"></path></g>
<g id="event-seat"><path d="M4 18v3h3v-3h10v3h3v-6H4zm15-8h3v3h-3zM2 10h3v3H2zm15 3H7V5c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v8z"></path></g>
<g id="exit-to-app"><path d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path></g>
<g id="expand-less"><path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"></path></g>
<g id="expand-more"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path></g>
<g id="explore"><path d="M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1c.61 0 1.1-.49 1.1-1.1s-.49-1.1-1.1-1.1zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm2.19 12.19L6 18l3.81-8.19L18 6l-3.81 8.19z"></path></g>
<g id="extension"><path d="M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"></path></g>
<g id="face"><path d="M9 11.75c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zm6 0c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-.86 2.36-1.05 4.23-2.98 5.21-5.37C11.07 8.33 14.05 10 17.42 10c.78 0 1.53-.09 2.25-.26.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z"></path></g>
<g id="favorite"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"></path></g>
<g id="favorite-border"><path d="M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z"></path></g>
<g id="feedback"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z"></path></g>
<g id="file-download"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"></path></g>
<g id="file-upload"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"></path></g>
<g id="filter-list"><path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"></path></g>
<g id="find-in-page"><path d="M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"></path></g>
<g id="find-replace"><path d="M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z"></path></g>
<g id="fingerprint"><path d="M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.24.13-.54.04-.68-.2-.13-.24-.04-.55.2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47 6.03 1.52.25.13.34.43.21.67-.09.18-.26.28-.44.28zM3.5 9.72c-.1 0-.2-.03-.29-.09-.23-.16-.28-.47-.12-.7.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.86 3.75 3.25.16.22.11.54-.12.7-.23.16-.54.11-.7-.12-.9-1.26-2.04-2.25-3.39-2.94-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.39.21zm6.25 12.07c-.13 0-.26-.05-.35-.15-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1-1.4-1.39-2.17-3.24-2.17-5.22 0-1.62 1.38-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29-.49-1.31-.73-2.61-.73-3.96 0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z"></path></g>
<g id="first-page"><path d="M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"></path></g>
<g id="flag"><path d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"></path></g>
<g id="flight-land"><path d="M2.5 19h19v2h-19zm7.18-5.73l4.35 1.16 5.31 1.42c.8.21 1.62-.26 1.84-1.06.21-.8-.26-1.62-1.06-1.84l-5.31-1.42-2.76-9.02L10.12 2v8.28L5.15 8.95l-.93-2.32-1.45-.39v5.17l1.6.43 5.31 1.43z"></path></g>
<g id="flight-takeoff"><path d="M2.5 19h19v2h-19zm19.57-9.36c-.21-.8-1.04-1.28-1.84-1.06L14.92 10l-6.9-6.43-1.93.51 4.14 7.17-4.97 1.33-1.97-1.54-1.45.39 1.82 3.16.77 1.33 1.6-.43 5.31-1.42 4.35-1.16L21 11.49c.81-.23 1.28-1.05 1.07-1.85z"></path></g>
<g id="flip-to-back"><path d="M9 7H7v2h2V7zm0 4H7v2h2v-2zm0-8c-1.11 0-2 .9-2 2h2V3zm4 12h-2v2h2v-2zm6-12v2h2c0-1.1-.9-2-2-2zm-6 0h-2v2h2V3zM9 17v-2H7c0 1.1.89 2 2 2zm10-4h2v-2h-2v2zm0-4h2V7h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zM5 7H3v12c0 1.1.89 2 2 2h12v-2H5V7zm10-2h2V3h-2v2zm0 12h2v-2h-2v2z"></path></g>
<g id="flip-to-front"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm2 4v-2H3c0 1.1.89 2 2 2zM3 9h2V7H3v2zm12 12h2v-2h-2v2zm4-18H9c-1.11 0-2 .9-2 2v10c0 1.1.89 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H9V5h10v10zm-8 6h2v-2h-2v2zm-4 0h2v-2H7v2z"></path></g>
<g id="folder"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"></path></g>
<g id="folder-open"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"></path></g>
<g id="folder-shared"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-5 3c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2v1z"></path></g>
<g id="font-download"><path d="M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z"></path></g>
<g id="forward"><path d="M12 8V4l8 8-8 8v-4H4V8z"></path></g>
<g id="fullscreen"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"></path></g>
<g id="fullscreen-exit"><path d="M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"></path></g>
<g id="g-translate"><path d="M20 5h-9.12L10 2H4c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h7l1 3h8c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zM7.17 14.59c-2.25 0-4.09-1.83-4.09-4.09s1.83-4.09 4.09-4.09c1.04 0 1.99.37 2.74 1.07l.07.06-1.23 1.18-.06-.05c-.29-.27-.78-.59-1.52-.59-1.31 0-2.38 1.09-2.38 2.42s1.07 2.42 2.38 2.42c1.37 0 1.96-.87 2.12-1.46H7.08V9.91h3.95l.01.07c.04.21.05.4.05.61 0 2.35-1.61 4-3.92 4zm6.03-1.71c.33.6.74 1.18 1.19 1.7l-.54.53-.65-2.23zm.77-.76h-.99l-.31-1.04h3.99s-.34 1.31-1.56 2.74c-.52-.62-.89-1.23-1.13-1.7zM21 20c0 .55-.45 1-1 1h-7l2-2-.81-2.77.92-.92L17.79 18l.73-.73-2.71-2.68c.9-1.03 1.6-2.25 1.92-3.51H19v-1.04h-3.64V9h-1.04v1.04h-1.96L11.18 6H20c.55 0 1 .45 1 1v13z"></path></g>
<g id="gavel"><path d="M1 21h12v2H1zM5.245 8.07l2.83-2.827 14.14 14.142-2.828 2.828zM12.317 1l5.657 5.656-2.83 2.83-5.654-5.66zM3.825 9.485l5.657 5.657-2.828 2.828-5.657-5.657z"></path></g>
<g id="gesture"><path d="M4.59 6.89c.7-.71 1.4-1.35 1.71-1.22.5.2 0 1.03-.3 1.52-.25.42-2.86 3.89-2.86 6.31 0 1.28.48 2.34 1.34 2.98.75.56 1.74.73 2.64.46 1.07-.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78.64-5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1H21v-2.5h-2.47c-.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-.58.73-2.06 2.48-2.29 2.72-.25.3-.68.84-1.11.84-.45 0-.72-.83-.36-1.92.35-1.09 1.4-2.86 1.85-3.52.78-1.14 1.3-1.92 1.3-3.28C8.95 3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.36.36-.66.66-.88.93l1.75 1.71zm9.29 11.66c-.31 0-.74-.26-.74-.72 0-.6.73-2.2 2.87-2.76-.3 2.69-1.43 3.48-2.13 3.48z"></path></g>
<g id="get-app"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"></path></g>
<g id="gif"><path d="M11.5 9H13v6h-1.5zM9 9H6c-.6 0-1 .5-1 1v4c0 .5.4 1 1 1h3c.6 0 1-.5 1-1v-2H8.5v1.5h-2v-3H10V10c0-.5-.4-1-1-1zm10 1.5V9h-4.5v6H16v-2h2v-1.5h-2v-1z"></path></g>
<g id="grade"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"></path></g>
<g id="group-work"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM8 17.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zM9.5 8c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5S9.5 9.38 9.5 8zm6.5 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></g>
<g id="help"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"></path></g>
<g id="help-outline"><path d="M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"></path></g>
<g id="highlight-off"><path d="M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="history"><path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"></path></g>
<g id="home"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"></path></g>
<g id="hourglass-empty"><path d="M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm10 14.5V20H8v-3.5l4-4 4 4zm-4-5l-4-4V4h8v3.5l-4 4z"></path></g>
<g id="hourglass-full"><path d="M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6z"></path></g>
<g id="http"><path d="M4.5 11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5v2zm2.5-.5h1.5V15H10v-4.5h1.5V9H7v1.5zm5.5 0H14V15h1.5v-4.5H17V9h-4.5v1.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5zm0 2.5h-2v-1h2v1z"></path></g>
<g id="https"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"></path></g>
<g id="important-devices"><path d="M23 11.01L18 11c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-9c0-.55-.45-.99-1-.99zM23 20h-5v-7h5v7zM20 2H2C.89 2 0 2.89 0 4v12c0 1.1.89 2 2 2h7v2H7v2h8v-2h-2v-2h2v-2H2V4h18v5h2V4c0-1.11-.9-2-2-2zm-8.03 7L11 6l-.97 3H7l2.47 1.76-.94 2.91 2.47-1.8 2.47 1.8-.94-2.91L15 9h-3.03z"></path></g>
<g id="inbox"><path d="M19 3H4.99c-1.11 0-1.98.89-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.11-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10z"></path></g>
<g id="indeterminate-check-box"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"></path></g>
<g id="info"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"></path></g>
<g id="info-outline"><path d="M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z"></path></g>
<g id="input"><path d="M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14c0-1.11-.9-2-2-2zM11 16l4-4-4-4v3H1v2h10v3z"></path></g>
<g id="invert-colors"><path d="M17.66 7.93L12 2.27 6.34 7.93c-3.12 3.12-3.12 8.19 0 11.31C7.9 20.8 9.95 21.58 12 21.58c2.05 0 4.1-.78 5.66-2.34 3.12-3.12 3.12-8.19 0-11.31zM12 19.59c-1.6 0-3.11-.62-4.24-1.76C6.62 16.69 6 15.19 6 13.59s.62-3.11 1.76-4.24L12 5.1v14.49z"></path></g>
<g id="label"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"></path></g>
<g id="label-outline"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"></path></g>
<g id="language"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"></path></g>
<g id="last-page"><path d="M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"></path></g>
<g id="launch"><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path></g>
<g id="lightbulb-outline"><path d="M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6C7.8 12.16 7 10.63 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1z"></path></g>
<g id="line-style"><path d="M3 16h5v-2H3v2zm6.5 0h5v-2h-5v2zm6.5 0h5v-2h-5v2zM3 20h2v-2H3v2zm4 0h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM3 12h8v-2H3v2zm10 0h8v-2h-8v2zM3 4v4h18V4H3z"></path></g>
<g id="line-weight"><path d="M3 17h18v-2H3v2zm0 3h18v-1H3v1zm0-7h18v-3H3v3zm0-9v4h18V4H3z"></path></g>
<g id="link"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></g>
<g id="list"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"></path></g>
<g id="lock"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"></path></g>
<g id="lock-open"><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"></path></g>
<g id="lock-outline"><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z"></path></g>
<g id="low-priority"><path d="M14 5h8v2h-8zm0 5.5h8v2h-8zm0 5.5h8v2h-8zM2 11.5C2 15.08 4.92 18 8.5 18H9v2l3-3-3-3v2h-.5C6.02 16 4 13.98 4 11.5S6.02 7 8.5 7H12V5H8.5C4.92 5 2 7.92 2 11.5z"></path></g>
<g id="loyalty"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7zm11.77 8.27L13 19.54l-4.27-4.27C8.28 14.81 8 14.19 8 13.5c0-1.38 1.12-2.5 2.5-2.5.69 0 1.32.28 1.77.74l.73.72.73-.73c.45-.45 1.08-.73 1.77-.73 1.38 0 2.5 1.12 2.5 2.5 0 .69-.28 1.32-.73 1.77z"></path></g>
<g id="mail"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"></path></g>
<g id="markunread"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"></path></g>
<g id="markunread-mailbox"><path d="M20 6H10v6H8V4h6V0H6v6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z"></path></g>
<g id="menu"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"></path></g>
<g id="more-horiz"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></g>
<g id="more-vert"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></g>
<g id="motorcycle"><path d="M19.44 9.03L15.41 5H11v2h3.59l2 2H5c-2.8 0-5 2.2-5 5s2.2 5 5 5c2.46 0 4.45-1.69 4.9-4h1.65l2.77-2.77c-.21.54-.32 1.14-.32 1.77 0 2.8 2.2 5 5 5s5-2.2 5-5c0-2.65-1.97-4.77-4.56-4.97zM7.82 15C7.4 16.15 6.28 17 5 17c-1.63 0-3-1.37-3-3s1.37-3 3-3c1.28 0 2.4.85 2.82 2H5v2h2.82zM19 17c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"></path></g>
<g id="move-to-inbox"><path d="M19 3H4.99c-1.11 0-1.98.9-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10zm-3-5h-2V7h-4v3H8l4 4 4-4z"></path></g>
<g id="next-week"><path d="M20 7h-4V5c0-.55-.22-1.05-.59-1.41C15.05 3.22 14.55 3 14 3h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM10 5h4v2h-4V5zm1 13.5l-1-1 3-3-3-3 1-1 4 4-4 4z"></path></g>
<g id="note-add"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 14h-3v3h-2v-3H8v-2h3v-3h2v3h3v2zm-3-7V3.5L18.5 9H13z"></path></g>
<g id="offline-pin"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm5 16H7v-2h10v2zm-6.7-4L7 10.7l1.4-1.4 1.9 1.9 5.3-5.3L17 7.3 10.3 14z"></path></g>
<g id="opacity"><path d="M17.66 8L12 2.35 6.34 8C4.78 9.56 4 11.64 4 13.64s.78 4.11 2.34 5.67 3.61 2.35 5.66 2.35 4.1-.79 5.66-2.35S20 15.64 20 13.64 19.22 9.56 17.66 8zM6 14c.01-2 .62-3.27 1.76-4.4L12 5.27l4.24 4.38C17.38 10.77 17.99 12 18 14H6z"></path></g>
<g id="open-in-browser"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2zm-7 6l-4 4h3v6h2v-6h3l-4-4z"></path></g>
<g id="open-in-new"><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path></g>
<g id="open-with"><path d="M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z"></path></g>
<g id="pageview"><path d="M11.5 9C10.12 9 9 10.12 9 11.5s1.12 2.5 2.5 2.5 2.5-1.12 2.5-2.5S12.88 9 11.5 9zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-3.21 14.21l-2.91-2.91c-.69.44-1.51.7-2.39.7C9.01 16 7 13.99 7 11.5S9.01 7 11.5 7 16 9.01 16 11.5c0 .88-.26 1.69-.7 2.39l2.91 2.9-1.42 1.42z"></path></g>
<g id="pan-tool"><path d="M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z"></path></g>
<g id="payment"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"></path></g>
<g id="perm-camera-mic"><path d="M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v-2.09c-2.83-.48-5-2.94-5-5.91h2c0 2.21 1.79 4 4 4s4-1.79 4-4h2c0 2.97-2.17 5.43-5 5.91V21h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-6 8c0 1.1-.9 2-2 2s-2-.9-2-2V9c0-1.1.9-2 2-2s2 .9 2 2v4z"></path></g>
<g id="perm-contact-calendar"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1z"></path></g>
<g id="perm-data-setting"><path d="M18.99 11.5c.34 0 .67.03 1 .07L20 0 0 20h11.56c-.04-.33-.07-.66-.07-1 0-4.14 3.36-7.5 7.5-7.5zm3.71 7.99c.02-.16.04-.32.04-.49 0-.17-.01-.33-.04-.49l1.06-.83c.09-.08.12-.21.06-.32l-1-1.73c-.06-.11-.19-.15-.31-.11l-1.24.5c-.26-.2-.54-.37-.85-.49l-.19-1.32c-.01-.12-.12-.21-.24-.21h-2c-.12 0-.23.09-.25.21l-.19 1.32c-.3.13-.59.29-.85.49l-1.24-.5c-.11-.04-.24 0-.31.11l-1 1.73c-.06.11-.04.24.06.32l1.06.83c-.02.16-.03.32-.03.49 0 .17.01.33.03.49l-1.06.83c-.09.08-.12.21-.06.32l1 1.73c.06.11.19.15.31.11l1.24-.5c.26.2.54.37.85.49l.19 1.32c.02.12.12.21.25.21h2c.12 0 .23-.09.25-.21l.19-1.32c.3-.13.59-.29.84-.49l1.25.5c.11.04.24 0 .31-.11l1-1.73c.06-.11.03-.24-.06-.32l-1.07-.83zm-3.71 1.01c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"></path></g>
<g id="perm-device-information"><path d="M13 7h-2v2h2V7zm0 4h-2v6h2v-6zm4-9.99L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"></path></g>
<g id="perm-identity"><path d="M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"></path></g>
<g id="perm-media"><path d="M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2V6zm20-2h-8l-2-2H6c-1.1 0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 15l4.5-6 3.5 4.51 2.5-3.01L21 15H7z"></path></g>
<g id="perm-phone-msg"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM12 3v10l3-3h6V3h-9z"></path></g>
<g id="perm-scan-wifi"><path d="M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2v2h-2z"></path></g>
<g id="pets"><circle cx="4.5" cy="9.5" r="2.5"></circle><circle cx="9" cy="5.5" r="2.5"></circle><circle cx="15" cy="5.5" r="2.5"></circle><circle cx="19.5" cy="9.5" r="2.5"></circle><path d="M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z"></path></g>
<g id="picture-in-picture"><path d="M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z"></path></g>
<g id="picture-in-picture-alt"><path d="M19 11h-8v6h8v-6zm4 8V4.98C23 3.88 22.1 3 21 3H3c-1.1 0-2 .88-2 1.98V19c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zm-2 .02H3V4.97h18v14.05z"></path></g>
<g id="play-for-work"><path d="M11 5v5.59H7.5l4.5 4.5 4.5-4.5H13V5h-2zm-5 9c0 3.31 2.69 6 6 6s6-2.69 6-6h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6z"></path></g>
<g id="polymer"><path d="M19 4h-4L7.11 16.63 4.5 12 9 4H5L.5 12 5 20h4l7.89-12.63L19.5 12 15 20h4l4.5-8z"></path></g>
<g id="power-settings-new"><path d="M13 3h-2v10h2V3zm4.83 2.17l-1.42 1.42C17.99 7.86 19 9.81 19 12c0 3.87-3.13 7-7 7s-7-3.13-7-7c0-2.19 1.01-4.14 2.58-5.42L6.17 5.17C4.23 6.82 3 9.26 3 12c0 4.97 4.03 9 9 9s9-4.03 9-9c0-2.74-1.23-5.18-3.17-6.83z"></path></g>
<g id="pregnant-woman"><path d="M9 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm7 9c-.01-1.34-.83-2.51-2-3 0-1.66-1.34-3-3-3s-3 1.34-3 3v7h2v5h3v-5h3v-4z"></path></g>
<g id="print"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"></path></g>
<g id="query-builder"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"></path></g>
<g id="question-answer"><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"></path></g>
<g id="radio-button-checked"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g>
<g id="radio-button-unchecked"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g>
<g id="receipt"><path d="M18 17H6v-2h12v2zm0-4H6v-2h12v2zm0-4H6V7h12v2zM3 22l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20z"></path></g>
<g id="record-voice-over"><circle cx="9" cy="9" r="4"></circle><path d="M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm7.76-9.64l-1.68 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27zM20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z"></path></g>
<g id="redeem"><path d="M20 6h-2.18c.11-.31.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"></path></g>
<g id="redo"><path d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"></path></g>
<g id="refresh"><path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"></path></g>
<g id="remove"><path d="M19 13H5v-2h14v2z"></path></g>
<g id="remove-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z"></path></g>
<g id="remove-circle-outline"><path d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
<g id="remove-shopping-cart"><path d="M22.73 22.73L2.77 2.77 2 2l-.73-.73L0 2.54l4.39 4.39 2.21 4.66-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h7.46l1.38 1.38c-.5.36-.83.95-.83 1.62 0 1.1.89 2 1.99 2 .67 0 1.26-.33 1.62-.84L21.46 24l1.27-1.27zM7.42 15c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h2.36l2 2H7.42zm8.13-2c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H6.54l9.01 9zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2z"></path></g>
<g id="reorder"><path d="M3 15h18v-2H3v2zm0 4h18v-2H3v2zm0-8h18V9H3v2zm0-6v2h18V5H3z"></path></g>
<g id="reply"><path d="M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"></path></g>
<g id="reply-all"><path d="M7 8V5l-7 7 7 7v-3l-4-4 4-4zm6 1V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"></path></g>
<g id="report"><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2V7h2v6z"></path></g>
<g id="report-problem"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"></path></g>
<g id="restore"><path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"></path></g>
<g id="restore-page"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm-2 16c-2.05 0-3.81-1.24-4.58-3h1.71c.63.9 1.68 1.5 2.87 1.5 1.93 0 3.5-1.57 3.5-3.5S13.93 9.5 12 9.5c-1.35 0-2.52.78-3.1 1.9l1.6 1.6h-4V9l1.3 1.3C8.69 8.92 10.23 8 12 8c2.76 0 5 2.24 5 5s-2.24 5-5 5z"></path></g>
<g id="room"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></g>
<g id="rounded-corner"><path d="M19 19h2v2h-2v-2zm0-2h2v-2h-2v2zM3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm0-4h2V3H3v2zm4 0h2V3H7v2zm8 16h2v-2h-2v2zm-4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm-8 0h2v-2H7v2zm-4 0h2v-2H3v2zM21 8c0-2.76-2.24-5-5-5h-5v2h5c1.65 0 3 1.35 3 3v5h2V8z"></path></g>
<g id="rowing"><path d="M8.5 14.5L4 19l1.5 1.5L9 17h2l-2.5-2.5zM15 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 20.01L18 24l-2.99-3.01V19.5l-7.1-7.09c-.31.05-.61.07-.91.07v-2.16c1.66.03 3.61-.87 4.67-2.04l1.4-1.55c.19-.21.43-.38.69-.5.29-.14.62-.23.96-.23h.03C15.99 6.01 17 7.02 17 8.26v5.75c0 .84-.35 1.61-.92 2.16l-3.58-3.58v-2.27c-.63.52-1.43 1.02-2.29 1.39L16.5 18H18l3 3.01z"></path></g>
<g id="save"><path d="M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"></path></g>
<g id="schedule"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"></path></g>
<g id="search"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path></g>
<g id="select-all"><path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z"></path></g>
<g id="send"><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"></path></g>
<g id="settings"><path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"></path></g>
<g id="settings-applications"><path d="M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69 0-.23.02-.46.05-.68l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z"></path></g>
<g id="settings-backup-restore"><path d="M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9c-4.97 0-9 4.03-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.51 0-2.91-.49-4.06-1.3l-1.42 1.44C8.04 20.3 9.94 21 12 21c4.97 0 9-4.03 9-9s-4.03-9-9-9z"></path></g>
<g id="settings-bluetooth"><path d="M11 24h2v-2h-2v2zm-4 0h2v-2H7v2zm8 0h2v-2h-2v2zm2.71-18.29L12 0h-1v7.59L6.41 3 5 4.41 10.59 10 5 15.59 6.41 17 11 12.41V20h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 3.83l1.88 1.88L13 7.59V3.83zm1.88 10.46L13 16.17v-3.76l1.88 1.88z"></path></g>
<g id="settings-brightness"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02zM8 16h2.5l1.5 1.5 1.5-1.5H16v-2.5l1.5-1.5-1.5-1.5V8h-2.5L12 6.5 10.5 8H8v2.5L6.5 12 8 13.5V16zm4-7c1.66 0 3 1.34 3 3s-1.34 3-3 3V9z"></path></g>
<g id="settings-cell"><path d="M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM16 .01L8 0C6.9 0 6 .9 6 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V2c0-1.1-.9-1.99-2-1.99zM16 16H8V4h8v12z"></path></g>
<g id="settings-ethernet"><path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z"></path></g>
<g id="settings-input-antenna"><path d="M12 5c-3.87 0-7 3.13-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.87-3.13-7-7-7zm1 9.29c.88-.39 1.5-1.26 1.5-2.29 0-1.38-1.12-2.5-2.5-2.5S9.5 10.62 9.5 12c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3zM12 1C5.93 1 1 5.93 1 12h2c0-4.97 4.03-9 9-9s9 4.03 9 9h2c0-6.07-4.93-11-11-11z"></path></g>
<g id="settings-input-component"><path d="M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"></path></g>
<g id="settings-input-composite"><path d="M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"></path></g>
<g id="settings-input-hdmi"><path d="M18 7V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v3H5v6l3 6v3h8v-3l3-6V7h-1zM8 4h8v3h-2V5h-1v2h-2V5h-1v2H8V4z"></path></g>
<g id="settings-input-svideo"><path d="M8 11.5c0-.83-.67-1.5-1.5-1.5S5 10.67 5 11.5 5.67 13 6.5 13 8 12.33 8 11.5zm7-5c0-.83-.67-1.5-1.5-1.5h-3C9.67 5 9 5.67 9 6.5S9.67 8 10.5 8h3c.83 0 1.5-.67 1.5-1.5zM8.5 15c-.83 0-1.5.67-1.5 1.5S7.67 18 8.5 18s1.5-.67 1.5-1.5S9.33 15 8.5 15zM12 1C5.93 1 1 5.93 1 12s4.93 11 11 11 11-4.93 11-11S18.07 1 12 1zm0 20c-4.96 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9zm5.5-11c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-2 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"></path></g>
<g id="settings-overscan"><path d="M12.01 5.5L10 8h4l-1.99-2.5zM18 10v4l2.5-1.99L18 10zM6 10l-2.5 2.01L6 14v-4zm8 6h-4l2.01 2.5L14 16zm7-13H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"></path></g>
<g id="settings-phone"><path d="M13 9h-2v2h2V9zm4 0h-2v2h2V9zm3 6.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 9v2h2V9h-2z"></path></g>
<g id="settings-power"><path d="M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm2-22h-2v10h2V2zm3.56 2.44l-1.45 1.45C16.84 6.94 18 8.83 18 11c0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 4.44C5.36 5.88 4 8.28 4 11c0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.72-1.36-5.12-3.44-6.56zM15 24h2v-2h-2v2z"></path></g>
<g id="settings-remote"><path d="M15 9H9c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1zm-3 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM7.05 6.05l1.41 1.41C9.37 6.56 10.62 6 12 6s2.63.56 3.54 1.46l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05zM12 0C8.96 0 6.21 1.23 4.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.23 15.04 0 12 0z"></path></g>
<g id="settings-voice"><path d="M7 24h2v-2H7v2zm5-11c1.66 0 2.99-1.34 2.99-3L15 4c0-1.66-1.34-3-3-3S9 2.34 9 4v6c0 1.66 1.34 3 3 3zm-1 11h2v-2h-2v2zm4 0h2v-2h-2v2zm4-14h-1.7c0 3-2.54 5.1-5.3 5.1S6.7 13 6.7 10H5c0 3.41 2.72 6.23 6 6.72V20h2v-3.28c3.28-.49 6-3.31 6-6.72z"></path></g>
<g id="shop"><path d="M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zM9 18V9l7.5 4L9 18z"></path></g>
<g id="shop-two"><path d="M3 9H1v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H3V9zm15-4V3c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5h-5zm-6-2h4v2h-4V3zm0 12V8l5.5 3-5.5 4z"></path></g>
<g id="shopping-basket"><path d="M17.21 9l-4.38-6.56c-.19-.28-.51-.42-.83-.42-.32 0-.64.14-.83.43L6.79 9H2c-.55 0-1 .45-1 1 0 .09.01.18.04.27l2.54 9.27c.23.84 1 1.46 1.92 1.46h13c.92 0 1.69-.62 1.93-1.46l2.54-9.27L23 10c0-.55-.45-1-1-1h-4.79zM9 9l3-4.4L15 9H9zm3 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"></path></g>
<g id="shopping-cart"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"></path></g>
<g id="sort"><path d="M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h12v-2H3v2z"></path></g>
<g id="speaker-notes"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 14H6v-2h2v2zm0-3H6V9h2v2zm0-3H6V6h2v2zm7 6h-5v-2h5v2zm3-3h-8V9h8v2zm0-3h-8V6h8v2z"></path></g>
<g id="speaker-notes-off"><path d="M10.54 11l-.54-.54L7.54 8 6 6.46 2.38 2.84 1.27 1.73 0 3l2.01 2.01L2 22l4-4h9l5.73 5.73L22 22.46 17.54 18l-7-7zM8 14H6v-2h2v2zm-2-3V9l2 2H6zm14-9H4.08L10 7.92V6h8v2h-7.92l1 1H18v2h-4.92l6.99 6.99C21.14 17.95 22 17.08 22 16V4c0-1.1-.9-2-2-2z"></path></g>
<g id="spellcheck"><path d="M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5L8.5 5.48 10.57 11H6.43zm15.16.59l-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l-1.41-1.41z"></path></g>
<g id="star"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"></path></g>
<g id="star-border"><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"></path></g>
<g id="star-half"><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"></path></g>
<g id="stars"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm4.24 16L12 15.45 7.77 18l1.12-4.81-3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23L16.23 18z"></path></g>
<g id="store"><path d="M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z"></path></g>
<g id="subdirectory-arrow-left"><path d="M11 9l1.42 1.42L8.83 14H18V4h2v12H8.83l3.59 3.58L11 21l-6-6 6-6z"></path></g>
<g id="subdirectory-arrow-right"><path d="M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z"></path></g>
<g id="subject"><path d="M14 17H4v2h10v-2zm6-8H4v2h16V9zM4 15h16v-2H4v2zM4 5v2h16V5H4z"></path></g>
<g id="supervisor-account"><path d="M16.5 12c1.38 0 2.49-1.12 2.49-2.5S17.88 7 16.5 7C15.12 7 14 8.12 14 9.5s1.12 2.5 2.5 2.5zM9 11c1.66 0 2.99-1.34 2.99-3S10.66 5 9 5C7.34 5 6 6.34 6 8s1.34 3 3 3zm7.5 3c-1.83 0-5.5.92-5.5 2.75V19h11v-2.25c0-1.83-3.67-2.75-5.5-2.75zM9 13c-2.33 0-7 1.17-7 3.5V19h7v-2.25c0-.85.33-2.34 2.37-3.47C10.5 13.1 9.66 13 9 13z"></path></g>
<g id="swap-horiz"><path d="M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z"></path></g>
<g id="swap-vert"><path d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z"></path></g>
<g id="swap-vertical-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM6.5 9L10 5.5 13.5 9H11v4H9V9H6.5zm11 6L14 18.5 10.5 15H13v-4h2v4h2.5z"></path></g>
<g id="system-update-alt"><path d="M12 16.5l4-4h-3v-9h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z"></path></g>
<g id="tab"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h10v4h8v10z"></path></g>
<g id="tab-unselected"><path d="M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"></path></g>
<g id="text-format"><path d="M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98L13.87 11h-3.74L12 5.98z"></path></g>
<g id="theaters"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z"></path></g>
<g id="thumb-down"><path d="M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v1.91l.01.01L1 14c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm4 0v12h4V3h-4z"></path></g>
<g id="thumb-up"><path d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.91l-.01-.01L23 10z"></path></g>
<g id="thumbs-up-down"><path d="M12 6c0-.55-.45-1-1-1H5.82l.66-3.18.02-.23c0-.31-.13-.59-.33-.8L5.38 0 .44 4.94C.17 5.21 0 5.59 0 6v6.5c0 .83.67 1.5 1.5 1.5h6.75c.62 0 1.15-.38 1.38-.91l2.26-5.29c.07-.17.11-.36.11-.55V6zm10.5 4h-6.75c-.62 0-1.15.38-1.38.91l-2.26 5.29c-.07.17-.11.36-.11.55V18c0 .55.45 1 1 1h5.18l-.66 3.18-.02.24c0 .31.13.59.33.8l.79.78 4.94-4.94c.27-.27.44-.65.44-1.06v-6.5c0-.83-.67-1.5-1.5-1.5z"></path></g>
<g id="timeline"><path d="M23 8c0 1.1-.9 2-2 2-.18 0-.35-.02-.51-.07l-3.56 3.55c.05.16.07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9 2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56C19.02 8.35 19 8.18 19 8c0-1.1.9-2 2-2s2 .9 2 2z"></path></g>
<g id="toc"><path d="M3 9h14V7H3v2zm0 4h14v-2H3v2zm0 4h14v-2H3v2zm16 0h2v-2h-2v2zm0-10v2h2V7h-2zm0 6h2v-2h-2v2z"></path></g>
<g id="today"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"></path></g>
<g id="toll"><path d="M15 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zM3 12c0-2.61 1.67-4.83 4-5.65V4.26C3.55 5.15 1 8.27 1 12s2.55 6.85 6 7.74v-2.09c-2.33-.82-4-3.04-4-5.65z"></path></g>
<g id="touch-app"><path d="M9 11.24V7.5C9 6.12 10.12 5 11.5 5S14 6.12 14 7.5v3.74c1.21-.81 2-2.18 2-3.74C16 5.01 13.99 3 11.5 3S7 5.01 7 7.5c0 1.56.79 2.93 2 3.74zm9.84 4.63l-4.54-2.26c-.17-.07-.35-.11-.54-.11H13v-6c0-.83-.67-1.5-1.5-1.5S10 6.67 10 7.5v10.74l-3.43-.72c-.08-.01-.15-.03-.24-.03-.31 0-.59.13-.79.33l-.79.8 4.94 4.94c.27.27.65.44 1.06.44h6.79c.75 0 1.33-.55 1.44-1.28l.75-5.27c.01-.07.02-.14.02-.2 0-.62-.38-1.16-.91-1.38z"></path></g>
<g id="track-changes"><path d="M19.07 4.93l-1.41 1.41C19.1 7.79 20 9.79 20 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07z"></path></g>
<g id="translate"><path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></g>
<g id="trending-down"><path d="M16 18l2.29-2.29-4.88-4.88-4 4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z"></path></g>
<g id="trending-flat"><path d="M22 12l-4-4v3H3v2h15v3z"></path></g>
<g id="trending-up"><path d="M16 6l2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z"></path></g>
<g id="turned-in"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"></path></g>
<g id="turned-in-not"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z"></path></g>
<g id="unarchive"><path d="M20.55 5.22l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.15.55L3.46 5.22C3.17 5.57 3 6.01 3 6.5V19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.49-.17-.93-.45-1.28zM12 9.5l5.5 5.5H14v2h-4v-2H6.5L12 9.5zM5.12 5l.82-1h12l.93 1H5.12z"></path></g>
<g id="undo"><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"></path></g>
<g id="unfold-less"><path d="M7.41 18.59L8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"></path></g>
<g id="unfold-more"><path d="M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"></path></g>
<g id="update"><path d="M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79 2.73 2.71 7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58 3.51-3.47 9.14-3.47 12.65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z"></path></g>
<g id="verified-user"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path></g>
<g id="view-agenda"><path d="M20 13H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm0-10H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"></path></g>
<g id="view-array"><path d="M4 18h3V5H4v13zM18 5v13h3V5h-3zM8 18h9V5H8v13z"></path></g>
<g id="view-carousel"><path d="M7 19h10V4H7v15zm-5-2h4V6H2v11zM18 6v11h4V6h-4z"></path></g>
<g id="view-column"><path d="M10 18h5V5h-5v13zm-6 0h5V5H4v13zM16 5v13h5V5h-5z"></path></g>
<g id="view-day"><path d="M2 21h19v-3H2v3zM20 8H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zM2 3v3h19V3H2z"></path></g>
<g id="view-headline"><path d="M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z"></path></g>
<g id="view-list"><path d="M4 14h4v-4H4v4zm0 5h4v-4H4v4zM4 9h4V5H4v4zm5 5h12v-4H9v4zm0 5h12v-4H9v4zM9 5v4h12V5H9z"></path></g>
<g id="view-module"><path d="M4 11h5V5H4v6zm0 7h5v-6H4v6zm6 0h5v-6h-5v6zm6 0h5v-6h-5v6zm-6-7h5V5h-5v6zm6-6v6h5V5h-5z"></path></g>
<g id="view-quilt"><path d="M10 18h5v-6h-5v6zm-6 0h5V5H4v13zm12 0h5v-6h-5v6zM10 5v6h11V5H10z"></path></g>
<g id="view-stream"><path d="M4 18h17v-6H4v6zM4 5v6h17V5H4z"></path></g>
<g id="view-week"><path d="M6 5H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm14 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-7 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"></path></g>
<g id="visibility"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"></path></g>
<g id="visibility-off"><path d="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"></path></g>
<g id="warning"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"></path></g>
<g id="watch-later"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"></path></g>
<g id="weekend"><path d="M21 10c-1.1 0-2 .9-2 2v3H5v-3c0-1.1-.9-2-2-2s-2 .9-2 2v5c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2zm-3-5H6c-1.1 0-2 .9-2 2v2.15c1.16.41 2 1.51 2 2.82V14h12v-2.03c0-1.3.84-2.4 2-2.82V7c0-1.1-.9-2-2-2z"></path></g>
<g id="work"><path d="M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"></path></g>
<g id="youtube-searched-for"><path d="M17.01 14h-.8l-.27-.27c.98-1.14 1.57-2.61 1.57-4.23 0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4 4.16-4H6.51C6.51 7 8.53 5 11.01 5s4.5 2.01 4.5 4.5c0 2.48-2.02 4.5-4.5 4.5-.65 0-1.26-.14-1.82-.38L7.71 15.1c.97.57 2.09.9 3.3.9 1.61 0 3.08-.59 4.22-1.57l.27.27v.79l5.01 4.99L22 19l-4.99-5z"></path></g>
<g id="zoom-in"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm2.5-4h-2v2H9v-2H7V9h2V7h1v2h2v1z"></path></g>
<g id="zoom-out"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"></path></g>
</defs></svg>
</iron-iconset-svg>`;document.head.appendChild(co.content);var ho={"U+0008":"backspace","U+0009":"tab","U+001B":"esc","U+0020":"space","U+007F":"del"},po={8:"backspace",9:"tab",13:"enter",27:"esc",33:"pageup",34:"pagedown",35:"end",36:"home",32:"space",37:"left",38:"up",39:"right",40:"down",46:"del",106:"*"},uo={shift:"shiftKey",ctrl:"ctrlKey",alt:"altKey",meta:"metaKey"},fo=/[a-z0-9*]/,go=/U\+/,mo=/^arrow/,vo=/^space(bar)?/,yo=/^escape$/;function _o(e,t){var n="";if(e){var i=e.toLowerCase();" "===i||vo.test(i)?n="space":yo.test(i)?n="esc":1==i.length?t&&!fo.test(i)||(n=i):n=mo.test(i)?i.replace("arrow",""):"multiply"==i?"*":i}return n}function bo(e,t){return n=t,i=e.hasModifiers,(n.key?_o(n.key,i):n.detail&&n.detail.key?_o(n.detail.key,i):(o="",(r=n.keyIdentifier)&&(r in ho?o=ho[r]:go.test(r)?(r=parseInt(r.replace("U+","0x"),16),o=String.fromCharCode(r).toLowerCase()):o=r.toLowerCase()),o||function(e){var t="";return Number(e)&&(t=e>=65&&e<=90?String.fromCharCode(32+e):e>=112&&e<=123?"f"+(e-112+1):e>=48&&e<=57?String(e-48):e>=96&&e<=105?String(e-96):po[e]),t}(n.keyCode)||""))===e.key&&(!e.hasModifiers||!!t.shiftKey==!!e.shiftKey&&!!t.ctrlKey==!!e.ctrlKey&&!!t.altKey==!!e.altKey&&!!t.metaKey==!!e.metaKey);var n,i,r,o}function xo(e){return e.trim().split(" ").map((function(e){return function(e){return 1===e.length?{combo:e,key:e,event:"keydown"}:e.split("+").reduce((function(e,t){var n=t.split(":"),i=n[0],r=n[1];return i in uo?(e[uo[i]]=!0,e.hasModifiers=!0):(e.key=i,e.event=r||"keydown"),e}),{combo:e.split(":").shift()})}(e)}))}const wo={properties:{keyEventTarget:{type:Object,value:function(){return this}},stopKeyboardEventPropagation:{type:Boolean,value:!1},_boundKeyHandlers:{type:Array,value:function(){return[]}},_imperativeKeyBindings:{type:Object,value:function(){return{}}}},observers:["_resetKeyEventListeners(keyEventTarget, _boundKeyHandlers)"],keyBindings:{},registered:function(){this._prepKeyBindings()},attached:function(){this._listenKeyEventListeners()},detached:function(){this._unlistenKeyEventListeners()},addOwnKeyBinding:function(e,t){this._imperativeKeyBindings[e]=t,this._prepKeyBindings(),this._resetKeyEventListeners()},removeOwnKeyBindings:function(){this._imperativeKeyBindings={},this._prepKeyBindings(),this._resetKeyEventListeners()},keyboardEventMatchesKeys:function(e,t){for(var n=xo(t),i=0;i<n.length;++i)if(bo(n[i],e))return!0;return!1},_collectKeyBindings:function(){var e=this.behaviors.map((function(e){return e.keyBindings}));return-1===e.indexOf(this.keyBindings)&&e.push(this.keyBindings),e},_prepKeyBindings:function(){for(var e in this._keyBindings={},this._collectKeyBindings().forEach((function(e){for(var t in e)this._addKeyBinding(t,e[t])}),this),this._imperativeKeyBindings)this._addKeyBinding(e,this._imperativeKeyBindings[e]);for(var t in this._keyBindings)this._keyBindings[t].sort((function(e,t){var n=e[0].hasModifiers;return n===t[0].hasModifiers?0:n?-1:1}))},_addKeyBinding:function(e,t){xo(e).forEach((function(e){this._keyBindings[e.event]=this._keyBindings[e.event]||[],this._keyBindings[e.event].push([e,t])}),this)},_resetKeyEventListeners:function(){this._unlistenKeyEventListeners(),this.isAttached&&this._listenKeyEventListeners()},_listenKeyEventListeners:function(){this.keyEventTarget&&Object.keys(this._keyBindings).forEach((function(e){var t=this._keyBindings[e],n=this._onKeyBindingEvent.bind(this,t);this._boundKeyHandlers.push([this.keyEventTarget,e,n]),this.keyEventTarget.addEventListener(e,n)}),this)},_unlistenKeyEventListeners:function(){for(var e,t,n,i;this._boundKeyHandlers.length;)t=(e=this._boundKeyHandlers.pop())[0],n=e[1],i=e[2],t.removeEventListener(n,i)},_onKeyBindingEvent:function(e,t){if(this.stopKeyboardEventPropagation&&t.stopPropagation(),!t.defaultPrevented)for(var n=0;n<e.length;n++){var i=e[n][0],r=e[n][1];if(bo(i,t)&&(this._triggerKeyHandler(i,r,t),t.defaultPrevented))return}},_triggerKeyHandler:function(e,t,n){var i=Object.create(e);i.keyboardEvent=n;var r=new CustomEvent(e.event,{detail:i,cancelable:!0});this[t].call(this,r),r.defaultPrevented&&n.preventDefault()}},So={properties:{scrollTarget:{type:HTMLElement,value:function(){return this._defaultScrollTarget}}},observers:["_scrollTargetChanged(scrollTarget, isAttached)"],_shouldHaveListener:!0,_scrollTargetChanged:function(e,t){if(this._oldScrollTarget&&(this._toggleScrollListener(!1,this._oldScrollTarget),this._oldScrollTarget=null),t)if("document"===e)this.scrollTarget=this._doc;else if("string"==typeof e){var n=this.domHost;this.scrollTarget=n&&n.$?n.$[e]:rr(this.ownerDocument).querySelector("#"+e)}else this._isValidScrollTarget()&&(this._oldScrollTarget=e,this._toggleScrollListener(this._shouldHaveListener,e))},_scrollHandler:function(){},get _defaultScrollTarget(){return this._doc},get _doc(){return this.ownerDocument.documentElement},get _scrollTop(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.pageYOffset:this.scrollTarget.scrollTop:0},get _scrollLeft(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.pageXOffset:this.scrollTarget.scrollLeft:0},set _scrollTop(e){this.scrollTarget===this._doc?window.scrollTo(window.pageXOffset,e):this._isValidScrollTarget()&&(this.scrollTarget.scrollTop=e)},set _scrollLeft(e){this.scrollTarget===this._doc?window.scrollTo(e,window.pageYOffset):this._isValidScrollTarget()&&(this.scrollTarget.scrollLeft=e)},scroll:function(e,t){var n;"object"==typeof e?(n=e.left,t=e.top):n=e,n=n||0,t=t||0,this.scrollTarget===this._doc?window.scrollTo(n,t):this._isValidScrollTarget()&&(this.scrollTarget.scrollLeft=n,this.scrollTarget.scrollTop=t)},get _scrollTargetWidth(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.innerWidth:this.scrollTarget.offsetWidth:0},get _scrollTargetHeight(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.innerHeight:this.scrollTarget.offsetHeight:0},_isValidScrollTarget:function(){return this.scrollTarget instanceof HTMLElement},_toggleScrollListener:function(e,t){var n=t===this._doc?window:t;e?this._boundScrollHandler||(this._boundScrollHandler=this._scrollHandler.bind(this),n.addEventListener("scroll",this._boundScrollHandler)):this._boundScrollHandler&&(n.removeEventListener("scroll",this._boundScrollHandler),this._boundScrollHandler=null)},toggleScrollListener:function(e){this._shouldHaveListener=e,this._toggleScrollListener(e,this.scrollTarget)}};var Eo=navigator.userAgent.match(/iP(?:hone|ad;(?: U;)? CPU) OS (\d+)/),Co=Eo&&Eo[1]>=8,zo="-10000px",ko=-100;xr({_template:Ot`
    <style>
      :host {
        display: block;
      }

      @media only screen and (-webkit-max-device-pixel-ratio: 1) {
        :host {
          will-change: transform;
        }
      }

      #items {
        @apply --iron-list-items-container;
        position: relative;
      }

      :host(:not([grid])) #items > ::slotted(*) {
        width: 100%;
      }

      #items > ::slotted(*) {
        box-sizing: border-box;
        margin: 0;
        position: absolute;
        top: 0;
        will-change: transform;
      }
    </style>

    <array-selector id="selector" items="{{items}}" selected="{{selectedItems}}" selected-item="{{selectedItem}}"></array-selector>

    <div id="items">
      <slot></slot>
    </div>
`,is:"iron-list",properties:{items:{type:Array},as:{type:String,value:"item"},indexAs:{type:String,value:"index"},selectedAs:{type:String,value:"selected"},grid:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"_gridChanged"},selectionEnabled:{type:Boolean,value:!1},selectedItem:{type:Object,notify:!0},selectedItems:{type:Object,notify:!0},multiSelection:{type:Boolean,value:!1},scrollOffset:{type:Number,value:0}},observers:["_itemsChanged(items.*)","_selectionEnabledChanged(selectionEnabled)","_multiSelectionChanged(multiSelection)","_setOverflow(scrollTarget, scrollOffset)"],behaviors:[Vr,no,So,Qr],_ratio:.5,_scrollerPaddingTop:0,_scrollPosition:0,_physicalSize:0,_physicalAverage:0,_physicalAverageCount:0,_physicalTop:0,_virtualCount:0,_estScrollHeight:0,_scrollHeight:0,_viewportHeight:0,_viewportWidth:0,_physicalItems:null,_physicalSizes:null,_firstVisibleIndexVal:null,_lastVisibleIndexVal:null,_maxPages:2,_focusedItem:null,_focusedVirtualIndex:-1,_focusedPhysicalIndex:-1,_offscreenFocusedItem:null,_focusBackfillItem:null,_itemsPerRow:1,_itemWidth:0,_rowHeight:0,_templateCost:0,_parentModel:!0,get _physicalBottom(){return this._physicalTop+this._physicalSize},get _scrollBottom(){return this._scrollPosition+this._viewportHeight},get _virtualEnd(){return this._virtualStart+this._physicalCount-1},get _hiddenContentSize(){return(this.grid?this._physicalRows*this._rowHeight:this._physicalSize)-this._viewportHeight},get _itemsParent(){return rr(rr(this._userTemplate).parentNode)},get _maxScrollTop(){return this._estScrollHeight-this._viewportHeight+this._scrollOffset},get _maxVirtualStart(){var e=this._convertIndexToCompleteRow(this._virtualCount);return Math.max(0,e-this._physicalCount)},set _virtualStart(e){e=this._clamp(e,0,this._maxVirtualStart),this.grid&&(e-=e%this._itemsPerRow),this._virtualStartVal=e},get _virtualStart(){return this._virtualStartVal||0},set _physicalStart(e){(e%=this._physicalCount)<0&&(e=this._physicalCount+e),this.grid&&(e-=e%this._itemsPerRow),this._physicalStartVal=e},get _physicalStart(){return this._physicalStartVal||0},get _physicalEnd(){return(this._physicalStart+this._physicalCount-1)%this._physicalCount},set _physicalCount(e){this._physicalCountVal=e},get _physicalCount(){return this._physicalCountVal||0},get _optPhysicalSize(){return 0===this._viewportHeight?1/0:this._viewportHeight*this._maxPages},get _isVisible(){return Boolean(this.offsetWidth||this.offsetHeight)},get firstVisibleIndex(){var e=this._firstVisibleIndexVal;if(null==e){var t=this._physicalTop+this._scrollOffset;e=this._iterateItems((function(e,n){return(t+=this._getPhysicalSizeIncrement(e))>this._scrollPosition?this.grid?n-n%this._itemsPerRow:n:this.grid&&this._virtualCount-1===n?n-n%this._itemsPerRow:void 0}))||0,this._firstVisibleIndexVal=e}return e},get lastVisibleIndex(){var e=this._lastVisibleIndexVal;if(null==e){if(this.grid)e=Math.min(this._virtualCount,this.firstVisibleIndex+this._estRowsInView*this._itemsPerRow-1);else{var t=this._physicalTop+this._scrollOffset;this._iterateItems((function(n,i){t<this._scrollBottom&&(e=i),t+=this._getPhysicalSizeIncrement(n)}))}this._lastVisibleIndexVal=e}return e},get _defaultScrollTarget(){return this},get _virtualRowCount(){return Math.ceil(this._virtualCount/this._itemsPerRow)},get _estRowsInView(){return Math.ceil(this._viewportHeight/this._rowHeight)},get _physicalRows(){return Math.ceil(this._physicalCount/this._itemsPerRow)},get _scrollOffset(){return this._scrollerPaddingTop+this.scrollOffset},ready:function(){this.addEventListener("focus",this._didFocus.bind(this),!0)},attached:function(){this._debounce("_render",this._render,Ee),this.listen(this,"iron-resize","_resizeHandler"),this.listen(this,"keydown","_keydownHandler")},detached:function(){this.unlisten(this,"iron-resize","_resizeHandler"),this.unlisten(this,"keydown","_keydownHandler")},_setOverflow:function(e){this.style.webkitOverflowScrolling=e===this?"touch":"",this.style.overflowY=e===this?"auto":"",this._lastVisibleIndexVal=null,this._firstVisibleIndexVal=null,this._debounce("_render",this._render,Ee)},updateViewportBoundaries:function(){var e=window.getComputedStyle(this);this._scrollerPaddingTop=this.scrollTarget===this?0:parseInt(e["padding-top"],10),this._isRTL=Boolean("rtl"===e.direction),this._viewportWidth=this.$.items.offsetWidth,this._viewportHeight=this._scrollTargetHeight,this.grid&&this._updateGridMetrics()},_scrollHandler:function(){var e=Math.max(0,Math.min(this._maxScrollTop,this._scrollTop)),t=e-this._scrollPosition,n=t>=0;if(this._scrollPosition=e,this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null,Math.abs(t)>this._physicalSize&&this._physicalSize>0){t-=this._scrollOffset;var i=Math.round(t/this._physicalAverage)*this._itemsPerRow;this._virtualStart=this._virtualStart+i,this._physicalStart=this._physicalStart+i,this._physicalTop=Math.min(Math.floor(this._virtualStart/this._itemsPerRow)*this._physicalAverage,this._scrollPosition),this._update()}else if(this._physicalCount>0){var r=this._getReusables(n);n?(this._physicalTop=r.physicalTop,this._virtualStart=this._virtualStart+r.indexes.length,this._physicalStart=this._physicalStart+r.indexes.length):(this._virtualStart=this._virtualStart-r.indexes.length,this._physicalStart=this._physicalStart-r.indexes.length),this._update(r.indexes,n?null:r.indexes),this._debounce("_increasePoolIfNeeded",this._increasePoolIfNeeded.bind(this,0),ze)}},_getReusables:function(e){var t,n,i,r=[],o=this._hiddenContentSize*this._ratio,a=this._virtualStart,s=this._virtualEnd,l=this._physicalCount,c=this._physicalTop+this._scrollOffset,d=this._physicalBottom+this._scrollOffset,h=this._scrollPosition,p=this._scrollBottom;for(e?(t=this._physicalStart,this._physicalEnd,n=h-c):(t=this._physicalEnd,this._physicalStart,n=d-p);n-=i=this._getPhysicalSizeIncrement(t),!(r.length>=l||n<=o);)if(e){if(s+r.length+1>=this._virtualCount)break;if(c+i>=h-this._scrollOffset)break;r.push(t),c+=i,t=(t+1)%l}else{if(a-r.length<=0)break;if(c+this._physicalSize-i<=p)break;r.push(t),c-=i,t=0===t?l-1:t-1}return{indexes:r,physicalTop:c-this._scrollOffset}},_update:function(e,t){if(!(e&&0===e.length||0===this._physicalCount)){if(this._manageFocus(),this._assignModels(e),this._updateMetrics(e),t)for(;t.length;){var n=t.pop();this._physicalTop-=this._getPhysicalSizeIncrement(n)}this._positionItems(),this._updateScrollerSize()}},_createPool:function(e){var t,n;this._ensureTemplatized();var i=new Array(e);for(t=0;t<e;t++)n=this.stamp(null),i[t]=n.root.querySelector("*"),this._itemsParent.appendChild(n.root);return i},_isClientFull:function(){return 0!=this._scrollBottom&&this._physicalBottom-1>=this._scrollBottom&&this._physicalTop<=this._scrollPosition},_increasePoolIfNeeded:function(e){var t=this._clamp(this._physicalCount+e,3,this._virtualCount-this._virtualStart);if(t=this._convertIndexToCompleteRow(t),this.grid){var n=t%this._itemsPerRow;n&&t-n<=this._physicalCount&&(t+=this._itemsPerRow),t-=n}var i=t-this._physicalCount,r=Math.round(.5*this._physicalCount);if(!(i<0)){if(i>0){var o=window.performance.now();[].push.apply(this._physicalItems,this._createPool(i));for(var a=0;a<i;a++)this._physicalSizes.push(0);this._physicalCount=this._physicalCount+i,this._physicalStart>this._physicalEnd&&this._isIndexRendered(this._focusedVirtualIndex)&&this._getPhysicalIndex(this._focusedVirtualIndex)<this._physicalEnd&&(this._physicalStart=this._physicalStart+i),this._update(),this._templateCost=(window.performance.now()-o)/i,r=Math.round(.5*this._physicalCount)}this._virtualEnd>=this._virtualCount-1||0===r||(this._isClientFull()?this._physicalSize<this._optPhysicalSize&&this._debounce("_increasePoolIfNeeded",this._increasePoolIfNeeded.bind(this,this._clamp(Math.round(50/this._templateCost),1,r)),Ce):this._debounce("_increasePoolIfNeeded",this._increasePoolIfNeeded.bind(this,r),ze))}},_render:function(){if(this.isAttached&&this._isVisible)if(0!==this._physicalCount){var e=this._getReusables(!0);this._physicalTop=e.physicalTop,this._virtualStart=this._virtualStart+e.indexes.length,this._physicalStart=this._physicalStart+e.indexes.length,this._update(e.indexes),this._update(),this._increasePoolIfNeeded(0)}else this._virtualCount>0&&(this.updateViewportBoundaries(),this._increasePoolIfNeeded(3))},_ensureTemplatized:function(){if(!this.ctor){this._userTemplate=this.queryEffectiveChildren("template"),this._userTemplate||console.warn("iron-list requires a template to be provided in light-dom");var e={__key__:!0};e[this.as]=!0,e[this.indexAs]=!0,e[this.selectedAs]=!0,e.tabIndex=!0,this._instanceProps=e,this.templatize(this._userTemplate,this.mutableData)}},_gridChanged:function(e,t){void 0!==t&&(this.notifyResize(),Yi(),e&&this._updateGridMetrics())},_itemsChanged:function(e){if("items"===e.path)this._virtualStart=0,this._physicalTop=0,this._virtualCount=this.items?this.items.length:0,this._physicalIndexForKey={},this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null,this._physicalCount=this._physicalCount||0,this._physicalItems=this._physicalItems||[],this._physicalSizes=this._physicalSizes||[],this._physicalStart=0,this._scrollTop>this._scrollOffset&&this._resetScrollPosition(0),this._removeFocusedItem(),this._debounce("_render",this._render,Ee);else if("items.splices"===e.path){if(this._adjustVirtualIndex(e.value.indexSplices),this._virtualCount=this.items?this.items.length:0,e.value.indexSplices.some((function(e){return e.addedCount>0||e.removed.length>0}))){var t=this._getActiveElement();this.contains(t)&&t.blur()}var n=e.value.indexSplices.some((function(e){return e.index+e.addedCount>=this._virtualStart&&e.index<=this._virtualEnd}),this);this._isClientFull()&&!n||this._debounce("_render",this._render,Ee)}else"items.length"!==e.path&&this._forwardItemPath(e.path,e.value)},_forwardItemPath:function(e,t){var n,i,r,o=(e=e.slice(6)).indexOf(".");-1===o&&(o=e.length);var a=this.modelForElement(this._offscreenFocusedItem),s=parseInt(e.substring(0,o),10);(n=this._isIndexRendered(s))?(i=this._getPhysicalIndex(s),r=this.modelForElement(this._physicalItems[i])):a&&(r=a),r&&r[this.indexAs]===s&&(e=e.substring(o+1),e=this.as+(e?"."+e:""),r._setPendingPropertyOrPath(e,t,!1,!0),r._flushProperties&&r._flushProperties(),n&&(this._updateMetrics([i]),this._positionItems(),this._updateScrollerSize()))},_adjustVirtualIndex:function(e){e.forEach((function(e){if(e.removed.forEach(this._removeItem,this),e.index<this._virtualStart){var t=Math.max(e.addedCount-e.removed.length,e.index-this._virtualStart);this._virtualStart=this._virtualStart+t,this._focusedVirtualIndex>=0&&(this._focusedVirtualIndex=this._focusedVirtualIndex+t)}}),this)},_removeItem:function(e){this.$.selector.deselect(e),this._focusedItem&&this.modelForElement(this._focusedItem)[this.as]===e&&this._removeFocusedItem()},_iterateItems:function(e,t){var n,i,r,o;if(2===arguments.length&&t){for(o=0;o<t.length;o++)if(n=t[o],i=this._computeVidx(n),null!=(r=e.call(this,n,i)))return r}else{for(n=this._physicalStart,i=this._virtualStart;n<this._physicalCount;n++,i++)if(null!=(r=e.call(this,n,i)))return r;for(n=0;n<this._physicalStart;n++,i++)if(null!=(r=e.call(this,n,i)))return r}},_computeVidx:function(e){return e>=this._physicalStart?this._virtualStart+(e-this._physicalStart):this._virtualStart+(this._physicalCount-this._physicalStart)+e},_assignModels:function(e){this._iterateItems((function(e,t){var n=this._physicalItems[e],i=this.items&&this.items[t];if(null!=i){var r=this.modelForElement(n);r.__key__=null,this._forwardProperty(r,this.as,i),this._forwardProperty(r,this.selectedAs,this.$.selector.isSelected(i)),this._forwardProperty(r,this.indexAs,t),this._forwardProperty(r,"tabIndex",this._focusedVirtualIndex===t?0:-1),this._physicalIndexForKey[r.__key__]=e,r._flushProperties&&r._flushProperties(!0),n.removeAttribute("hidden")}else n.setAttribute("hidden","")}),e)},_updateMetrics:function(e){Yi();var t=0,n=0,i=this._physicalAverageCount,r=this._physicalAverage;this._iterateItems((function(e,i){n+=this._physicalSizes[e],this._physicalSizes[e]=this._physicalItems[e].offsetHeight,t+=this._physicalSizes[e],this._physicalAverageCount+=this._physicalSizes[e]?1:0}),e),this.grid?(this._updateGridMetrics(),this._physicalSize=Math.ceil(this._physicalCount/this._itemsPerRow)*this._rowHeight):(n=1===this._itemsPerRow?n:Math.ceil(this._physicalCount/this._itemsPerRow)*this._rowHeight,this._physicalSize=this._physicalSize+t-n,this._itemsPerRow=1),this._physicalAverageCount!==i&&(this._physicalAverage=Math.round((r*i+t)/this._physicalAverageCount))},_updateGridMetrics:function(){this._itemWidth=this._physicalCount>0?this._physicalItems[0].getBoundingClientRect().width:200,this._rowHeight=this._physicalCount>0?this._physicalItems[0].offsetHeight:200,this._itemsPerRow=this._itemWidth?Math.floor(this._viewportWidth/this._itemWidth):this._itemsPerRow},_positionItems:function(){this._adjustScrollPosition();var e=this._physicalTop;if(this.grid){var t=this._itemsPerRow*this._itemWidth,n=(this._viewportWidth-t)/2;this._iterateItems((function(t,i){var r=i%this._itemsPerRow,o=Math.floor(r*this._itemWidth+n);this._isRTL&&(o*=-1),this.translate3d(o+"px",e+"px",0,this._physicalItems[t]),this._shouldRenderNextRow(i)&&(e+=this._rowHeight)}))}else{const t=[];this._iterateItems((function(n,i){const r=this._physicalItems[n];this.translate3d(0,e+"px",0,r),e+=this._physicalSizes[n];const o=r.id;o&&t.push(o)})),t.length&&this.setAttribute("aria-owns",t.join(" "))}},_getPhysicalSizeIncrement:function(e){return this.grid?this._computeVidx(e)%this._itemsPerRow!=this._itemsPerRow-1?0:this._rowHeight:this._physicalSizes[e]},_shouldRenderNextRow:function(e){return e%this._itemsPerRow==this._itemsPerRow-1},_adjustScrollPosition:function(){var e=0===this._virtualStart?this._physicalTop:Math.min(this._scrollPosition+this._physicalTop,0);if(0!==e){this._physicalTop=this._physicalTop-e;var t=this._scrollPosition;!Co&&t>0&&this._resetScrollPosition(t-e)}},_resetScrollPosition:function(e){this.scrollTarget&&e>=0&&(this._scrollTop=e,this._scrollPosition=this._scrollTop)},_updateScrollerSize:function(e){this.grid?this._estScrollHeight=this._virtualRowCount*this._rowHeight:this._estScrollHeight=this._physicalBottom+Math.max(this._virtualCount-this._physicalCount-this._virtualStart,0)*this._physicalAverage,((e=(e=(e=e||0===this._scrollHeight)||this._scrollPosition>=this._estScrollHeight-this._physicalSize)||this.grid&&this.$.items.style.height<this._estScrollHeight)||Math.abs(this._estScrollHeight-this._scrollHeight)>=this._viewportHeight)&&(this.$.items.style.height=this._estScrollHeight+"px",this._scrollHeight=this._estScrollHeight)},scrollToItem:function(e){return this.scrollToIndex(this.items.indexOf(e))},scrollToIndex:function(e){if(!("number"!=typeof e||e<0||e>this.items.length-1)&&(Yi(),0!==this._physicalCount)){e=this._clamp(e,0,this._virtualCount-1),(!this._isIndexRendered(e)||e>=this._maxVirtualStart)&&(this._virtualStart=this.grid?e-2*this._itemsPerRow:e-1),this._manageFocus(),this._assignModels(),this._updateMetrics(),this._physicalTop=Math.floor(this._virtualStart/this._itemsPerRow)*this._physicalAverage;for(var t=this._physicalStart,n=this._virtualStart,i=0,r=this._hiddenContentSize;n<e&&i<=r;)i+=this._getPhysicalSizeIncrement(t),t=(t+1)%this._physicalCount,n++;this._updateScrollerSize(!0),this._positionItems(),this._resetScrollPosition(this._physicalTop+this._scrollOffset+i),this._increasePoolIfNeeded(0),this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null}},_resetAverage:function(){this._physicalAverage=0,this._physicalAverageCount=0},_resizeHandler:function(){this._debounce("_render",(function(){this._firstVisibleIndexVal=null,this._lastVisibleIndexVal=null,this._isVisible?(this.updateViewportBoundaries(),this.toggleScrollListener(!0),this._resetAverage(),this._render()):this.toggleScrollListener(!1)}),Ee)},selectItem:function(e){return this.selectIndex(this.items.indexOf(e))},selectIndex:function(e){if(!(e<0||e>=this._virtualCount)){if(!this.multiSelection&&this.selectedItem&&this.clearSelection(),this._isIndexRendered(e)){var t=this.modelForElement(this._physicalItems[this._getPhysicalIndex(e)]);t&&(t[this.selectedAs]=!0),this.updateSizeForIndex(e)}this.$.selector.selectIndex(e)}},deselectItem:function(e){return this.deselectIndex(this.items.indexOf(e))},deselectIndex:function(e){e<0||e>=this._virtualCount||(this._isIndexRendered(e)&&(this.modelForElement(this._physicalItems[this._getPhysicalIndex(e)])[this.selectedAs]=!1,this.updateSizeForIndex(e)),this.$.selector.deselectIndex(e))},toggleSelectionForItem:function(e){return this.toggleSelectionForIndex(this.items.indexOf(e))},toggleSelectionForIndex:function(e){(this.$.selector.isIndexSelected?this.$.selector.isIndexSelected(e):this.$.selector.isSelected(this.items[e]))?this.deselectIndex(e):this.selectIndex(e)},clearSelection:function(){this._iterateItems((function(e,t){this.modelForElement(this._physicalItems[e])[this.selectedAs]=!1})),this.$.selector.clearSelection()},_selectionEnabledChanged:function(e){(e?this.listen:this.unlisten).call(this,this,"tap","_selectionHandler")},_selectionHandler:function(e){var t=this.modelForElement(e.target);if(t){var n,i,r=rr(e).path[0],o=this._getActiveElement(),a=this._physicalItems[this._getPhysicalIndex(t[this.indexAs])];"input"!==r.localName&&"button"!==r.localName&&"select"!==r.localName&&(n=t.tabIndex,t.tabIndex=ko,i=o?o.tabIndex:-1,t.tabIndex=n,o&&a!==o&&a.contains(o)&&i!==ko||this.toggleSelectionForItem(t[this.as]))}},_multiSelectionChanged:function(e){this.clearSelection(),this.$.selector.multi=e},updateSizeForItem:function(e){return this.updateSizeForIndex(this.items.indexOf(e))},updateSizeForIndex:function(e){return this._isIndexRendered(e)?(this._updateMetrics([this._getPhysicalIndex(e)]),this._positionItems(),null):null},_manageFocus:function(){var e=this._focusedVirtualIndex;e>=0&&e<this._virtualCount?this._isIndexRendered(e)?this._restoreFocusedItem():this._createFocusBackfillItem():this._virtualCount>0&&this._physicalCount>0&&(this._focusedPhysicalIndex=this._physicalStart,this._focusedVirtualIndex=this._virtualStart,this._focusedItem=this._physicalItems[this._physicalStart])},_convertIndexToCompleteRow:function(e){return this._itemsPerRow=this._itemsPerRow||1,this.grid?Math.ceil(e/this._itemsPerRow)*this._itemsPerRow:e},_isIndexRendered:function(e){return e>=this._virtualStart&&e<=this._virtualEnd},_isIndexVisible:function(e){return e>=this.firstVisibleIndex&&e<=this.lastVisibleIndex},_getPhysicalIndex:function(e){return(this._physicalStart+(e-this._virtualStart))%this._physicalCount},focusItem:function(e){this._focusPhysicalItem(e)},_focusPhysicalItem:function(e){if(!(e<0||e>=this._virtualCount)){this._restoreFocusedItem(),this._isIndexRendered(e)||this.scrollToIndex(e);var t,n=this._physicalItems[this._getPhysicalIndex(e)],i=this.modelForElement(n);i.tabIndex=ko,n.tabIndex===ko&&(t=n),t||(t=rr(n).querySelector('[tabindex="-100"]')),i.tabIndex=0,this._focusedVirtualIndex=e,t&&t.focus()}},_removeFocusedItem:function(){this._offscreenFocusedItem&&this._itemsParent.removeChild(this._offscreenFocusedItem),this._offscreenFocusedItem=null,this._focusBackfillItem=null,this._focusedItem=null,this._focusedVirtualIndex=-1,this._focusedPhysicalIndex=-1},_createFocusBackfillItem:function(){var e=this._focusedPhysicalIndex;if(!(this._offscreenFocusedItem||this._focusedVirtualIndex<0)){if(!this._focusBackfillItem){var t=this.stamp(null);this._focusBackfillItem=t.root.querySelector("*"),this._itemsParent.appendChild(t.root)}this._offscreenFocusedItem=this._physicalItems[e],this.modelForElement(this._offscreenFocusedItem).tabIndex=0,this._physicalItems[e]=this._focusBackfillItem,this._focusedPhysicalIndex=e,this.translate3d(0,zo,0,this._offscreenFocusedItem)}},_restoreFocusedItem:function(){if(this._offscreenFocusedItem&&!(this._focusedVirtualIndex<0)){this._assignModels();var e=this._focusedPhysicalIndex=this._getPhysicalIndex(this._focusedVirtualIndex),t=this._physicalItems[e];if(t){var n=this.modelForElement(t),i=this.modelForElement(this._offscreenFocusedItem);n[this.as]===i[this.as]?(this._focusBackfillItem=t,n.tabIndex=-1,this._physicalItems[e]=this._offscreenFocusedItem,this.translate3d(0,zo,0,this._focusBackfillItem)):(this._removeFocusedItem(),this._focusBackfillItem=null),this._offscreenFocusedItem=null}}},_didFocus:function(e){var t=this.modelForElement(e.target),n=this.modelForElement(this._focusedItem),i=null!==this._offscreenFocusedItem,r=this._focusedVirtualIndex;t&&(n===t?this._isIndexVisible(r)||this.scrollToIndex(r):(this._restoreFocusedItem(),n&&(n.tabIndex=-1),t.tabIndex=0,r=t[this.indexAs],this._focusedVirtualIndex=r,this._focusedPhysicalIndex=this._getPhysicalIndex(r),this._focusedItem=this._physicalItems[this._focusedPhysicalIndex],i&&!this._offscreenFocusedItem&&this._update()))},_keydownHandler:function(e){switch(e.keyCode){case 40:this._focusedVirtualIndex<this._virtualCount-1&&e.preventDefault(),this._focusPhysicalItem(this._focusedVirtualIndex+(this.grid?this._itemsPerRow:1));break;case 39:this.grid&&this._focusPhysicalItem(this._focusedVirtualIndex+(this._isRTL?-1:1));break;case 38:this._focusedVirtualIndex>0&&e.preventDefault(),this._focusPhysicalItem(this._focusedVirtualIndex-(this.grid?this._itemsPerRow:1));break;case 37:this.grid&&this._focusPhysicalItem(this._focusedVirtualIndex+(this._isRTL?1:-1));break;case 13:this._focusPhysicalItem(this._focusedVirtualIndex),this.selectionEnabled&&this._selectionHandler(e)}},_clamp:function(e,t,n){return Math.min(n,Math.max(t,e))},_debounce:function(e,t,n){this._debouncers=this._debouncers||{},this._debouncers[e]=Dn.debounce(this._debouncers[e],n,t.bind(this)),jn(this._debouncers[e])},_forwardProperty:function(e,t,n){e._setPendingProperty(t,n)},_forwardHostPropV2:function(e,t){(this._physicalItems||[]).concat([this._offscreenFocusedItem,this._focusBackfillItem]).forEach((function(n){n&&this.modelForElement(n).forwardHostProp(e,t)}),this)},_notifyInstancePropV2:function(e,t,n){if(se(this.as,t)){var i=e[this.indexAs];t==this.as&&(this.items[i]=n),this.notifyPath(ae(this.as,"items."+i,t),n)}},_getStampedChildren:function(){return this._physicalItems},_forwardInstancePath:function(e,t,n){0===t.indexOf(this.as+".")&&this.notifyPath("items."+e.__key__+"."+t.slice(this.as.length+1),n)},_forwardParentPath:function(e,t){(this._physicalItems||[]).concat([this._offscreenFocusedItem,this._focusBackfillItem]).forEach((function(n){n&&this.modelForElement(n).notifyPath(e,t)}),this)},_forwardParentProp:function(e,t){(this._physicalItems||[]).concat([this._offscreenFocusedItem,this._focusBackfillItem]).forEach((function(n){n&&(this.modelForElement(n)[e]=t)}),this)},_getActiveElement:function(){var e=this._itemsParent.node.domHost;return rr(e?e.root:document).activeElement}});class Mo{constructor(e){this.selection=[],this.selectCallback=e}get(){return this.multi?this.selection.slice():this.selection[0]}clear(e){this.selection.slice().forEach((function(t){(!e||e.indexOf(t)<0)&&this.setItemSelected(t,!1)}),this)}isSelected(e){return this.selection.indexOf(e)>=0}setItemSelected(e,t){if(null!=e&&t!==this.isSelected(e)){if(t)this.selection.push(e);else{var n=this.selection.indexOf(e);n>=0&&this.selection.splice(n,1)}this.selectCallback&&this.selectCallback(e,t)}}select(e){this.multi?this.toggle(e):this.get()!==e&&(this.setItemSelected(this.get(),!1),this.setItemSelected(e,!0))}toggle(e){this.setItemSelected(e,!this.isSelected(e))}}const Ao={properties:{attrForSelected:{type:String,value:null},selected:{type:String,notify:!0},selectedItem:{type:Object,readOnly:!0,notify:!0},activateEvent:{type:String,value:"tap",observer:"_activateEventChanged"},selectable:String,selectedClass:{type:String,value:"iron-selected"},selectedAttribute:{type:String,value:null},fallbackSelection:{type:String,value:null},items:{type:Array,readOnly:!0,notify:!0,value:function(){return[]}},_excludedLocalNames:{type:Object,value:function(){return{template:1,"dom-bind":1,"dom-if":1,"dom-repeat":1}}}},observers:["_updateAttrForSelected(attrForSelected)","_updateSelected(selected)","_checkFallback(fallbackSelection)"],created:function(){this._bindFilterItem=this._filterItem.bind(this),this._selection=new Mo(this._applySelection.bind(this))},attached:function(){this._observer=this._observeItems(this),this._addListener(this.activateEvent)},detached:function(){this._observer&&rr(this).unobserveNodes(this._observer),this._removeListener(this.activateEvent)},indexOf:function(e){return this.items?this.items.indexOf(e):-1},select:function(e){this.selected=e},selectPrevious:function(){var e=this.items.length,t=e-1;void 0!==this.selected&&(t=(Number(this._valueToIndex(this.selected))-1+e)%e),this.selected=this._indexToValue(t)},selectNext:function(){var e=0;void 0!==this.selected&&(e=(Number(this._valueToIndex(this.selected))+1)%this.items.length),this.selected=this._indexToValue(e)},selectIndex:function(e){this.select(this._indexToValue(e))},forceSynchronousItemUpdate:function(){this._observer&&"function"==typeof this._observer.flush?this._observer.flush():this._updateItems()},get _shouldUpdateSelection(){return null!=this.selected},_checkFallback:function(){this._updateSelected()},_addListener:function(e){this.listen(this,e,"_activateHandler")},_removeListener:function(e){this.unlisten(this,e,"_activateHandler")},_activateEventChanged:function(e,t){this._removeListener(t),this._addListener(e)},_updateItems:function(){var e=rr(this).queryDistributedElements(this.selectable||"*");e=Array.prototype.filter.call(e,this._bindFilterItem),this._setItems(e)},_updateAttrForSelected:function(){this.selectedItem&&(this.selected=this._valueForItem(this.selectedItem))},_updateSelected:function(){this._selectSelected(this.selected)},_selectSelected:function(e){if(this.items){var t=this._valueToItem(this.selected);t?this._selection.select(t):this._selection.clear(),this.fallbackSelection&&this.items.length&&void 0===this._selection.get()&&(this.selected=this.fallbackSelection)}},_filterItem:function(e){return!this._excludedLocalNames[e.localName]},_valueToItem:function(e){return null==e?null:this.items[this._valueToIndex(e)]},_valueToIndex:function(e){if(!this.attrForSelected)return Number(e);for(var t,n=0;t=this.items[n];n++)if(this._valueForItem(t)==e)return n},_indexToValue:function(e){if(!this.attrForSelected)return e;var t=this.items[e];return t?this._valueForItem(t):void 0},_valueForItem:function(e){if(!e)return null;if(!this.attrForSelected){var t=this.indexOf(e);return-1===t?null:t}var n=e[ge(this.attrForSelected)];return null!=n?n:e.getAttribute(this.attrForSelected)},_applySelection:function(e,t){this.selectedClass&&this.toggleClass(this.selectedClass,t,e),this.selectedAttribute&&this.toggleAttribute(this.selectedAttribute,t,e),this._selectionChange(),this.fire("iron-"+(t?"select":"deselect"),{item:e})},_selectionChange:function(){this._setSelectedItem(this._selection.get())},_observeItems:function(e){return rr(e).observeNodes((function(e){this._updateItems(),this._updateSelected(),this.fire("iron-items-changed",e,{bubbles:!1,cancelable:!1})}))},_activateHandler:function(e){for(var t=e.target,n=this.items;t&&t!=this;){var i=n.indexOf(t);if(i>=0){var r=this._indexToValue(i);return void this._itemActivate(r,t)}t=t.parentNode}},_itemActivate:function(e,t){this.fire("iron-activate",{selected:e,item:t},{cancelable:!0}).defaultPrevented||this.select(e)}};xr({_template:Ot`
    <style>
      :host {
        display: block;
      }

      :host > ::slotted(:not(slot):not(.iron-selected)) {
        display: none !important;
      }
    </style>

    <slot></slot>
`,is:"iron-pages",behaviors:[no,Ao],properties:{activateEvent:{type:String,value:null}},observers:["_selectedPageChanged(selected)"],_selectedPageChanged:function(e,t){this.async(this.notifyResize)}});const To=Ot`
<custom-style>
  <style is="custom-style">
    html {

      --shadow-transition: {
        transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
      };

      --shadow-none: {
        box-shadow: none;
      };

      /* from http://codepen.io/shyndman/pen/c5394ddf2e8b2a5c9185904b57421cdb */

      --shadow-elevation-2dp: {
        box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),
                    0 1px 5px 0 rgba(0, 0, 0, 0.12),
                    0 3px 1px -2px rgba(0, 0, 0, 0.2);
      };

      --shadow-elevation-3dp: {
        box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14),
                    0 1px 8px 0 rgba(0, 0, 0, 0.12),
                    0 3px 3px -2px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-4dp: {
        box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14),
                    0 1px 10px 0 rgba(0, 0, 0, 0.12),
                    0 2px 4px -1px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-6dp: {
        box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14),
                    0 1px 18px 0 rgba(0, 0, 0, 0.12),
                    0 3px 5px -1px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-8dp: {
        box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14),
                    0 3px 14px 2px rgba(0, 0, 0, 0.12),
                    0 5px 5px -3px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-12dp: {
        box-shadow: 0 12px 16px 1px rgba(0, 0, 0, 0.14),
                    0 4px 22px 3px rgba(0, 0, 0, 0.12),
                    0 6px 7px -4px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-16dp: {
        box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14),
                    0  6px 30px 5px rgba(0, 0, 0, 0.12),
                    0  8px 10px -5px rgba(0, 0, 0, 0.4);
      };

      --shadow-elevation-24dp: {
        box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14),
                    0 9px 46px 8px rgba(0, 0, 0, 0.12),
                    0 11px 15px -7px rgba(0, 0, 0, 0.4);
      };
    }
  </style>
</custom-style>`;To.setAttribute("style","display: none;"),document.head.appendChild(To.content);const No=Ot`
<dom-module id="paper-material-styles">
  <template>
    <style>
      html {
        --paper-material: {
          display: block;
          position: relative;
        };
        --paper-material-elevation-1: {
          @apply --shadow-elevation-2dp;
        };
        --paper-material-elevation-2: {
          @apply --shadow-elevation-4dp;
        };
        --paper-material-elevation-3: {
          @apply --shadow-elevation-6dp;
        };
        --paper-material-elevation-4: {
          @apply --shadow-elevation-8dp;
        };
        --paper-material-elevation-5: {
          @apply --shadow-elevation-16dp;
        };
      }
      .paper-material {
        @apply --paper-material;
      }
      .paper-material[elevation="1"] {
        @apply --paper-material-elevation-1;
      }
      .paper-material[elevation="2"] {
        @apply --paper-material-elevation-2;
      }
      .paper-material[elevation="3"] {
        @apply --paper-material-elevation-3;
      }
      .paper-material[elevation="4"] {
        @apply --paper-material-elevation-4;
      }
      .paper-material[elevation="5"] {
        @apply --paper-material-elevation-5;
      }

      /* Duplicate the styles because of https://github.com/webcomponents/shadycss/issues/193 */
      :host {
        --paper-material: {
          display: block;
          position: relative;
        };
        --paper-material-elevation-1: {
          @apply --shadow-elevation-2dp;
        };
        --paper-material-elevation-2: {
          @apply --shadow-elevation-4dp;
        };
        --paper-material-elevation-3: {
          @apply --shadow-elevation-6dp;
        };
        --paper-material-elevation-4: {
          @apply --shadow-elevation-8dp;
        };
        --paper-material-elevation-5: {
          @apply --shadow-elevation-16dp;
        };
      }
      :host(.paper-material) {
        @apply --paper-material;
      }
      :host(.paper-material[elevation="1"]) {
        @apply --paper-material-elevation-1;
      }
      :host(.paper-material[elevation="2"]) {
        @apply --paper-material-elevation-2;
      }
      :host(.paper-material[elevation="3"]) {
        @apply --paper-material-elevation-3;
      }
      :host(.paper-material[elevation="4"]) {
        @apply --paper-material-elevation-4;
      }
      :host(.paper-material[elevation="5"]) {
        @apply --paper-material-elevation-5;
      }
    </style>
  </template>
</dom-module>`;No.setAttribute("style","display: none;"),document.head.appendChild(No.content);const Io={properties:{focused:{type:Boolean,value:!1,notify:!0,readOnly:!0,reflectToAttribute:!0},disabled:{type:Boolean,value:!1,notify:!0,observer:"_disabledChanged",reflectToAttribute:!0},_oldTabIndex:{type:String},_boundFocusBlurHandler:{type:Function,value:function(){return this._focusBlurHandler.bind(this)}}},observers:["_changedControlState(focused, disabled)"],ready:function(){this.addEventListener("focus",this._boundFocusBlurHandler,!0),this.addEventListener("blur",this._boundFocusBlurHandler,!0)},_focusBlurHandler:function(e){this._setFocused("focus"===e.type)},_disabledChanged:function(e,t){this.setAttribute("aria-disabled",e?"true":"false"),this.style.pointerEvents=e?"none":"",e?(this._oldTabIndex=this.getAttribute("tabindex"),this._setFocused(!1),this.tabIndex=-1,this.blur()):void 0!==this._oldTabIndex&&(null===this._oldTabIndex?this.removeAttribute("tabindex"):this.setAttribute("tabindex",this._oldTabIndex))},_changedControlState:function(){this._controlStateChanged&&this._controlStateChanged()}},Oo={properties:{pressed:{type:Boolean,readOnly:!0,value:!1,reflectToAttribute:!0,observer:"_pressedChanged"},toggles:{type:Boolean,value:!1,reflectToAttribute:!0},active:{type:Boolean,value:!1,notify:!0,reflectToAttribute:!0},pointerDown:{type:Boolean,readOnly:!0,value:!1},receivedFocusFromKeyboard:{type:Boolean,readOnly:!0},ariaActiveAttribute:{type:String,value:"aria-pressed",observer:"_ariaActiveAttributeChanged"}},listeners:{down:"_downHandler",up:"_upHandler",tap:"_tapHandler"},observers:["_focusChanged(focused)","_activeChanged(active, ariaActiveAttribute)"],keyBindings:{"enter:keydown":"_asyncClick","space:keydown":"_spaceKeyDownHandler","space:keyup":"_spaceKeyUpHandler"},_mouseEventRe:/^mouse/,_tapHandler:function(){this.toggles?this._userActivate(!this.active):this.active=!1},_focusChanged:function(e){this._detectKeyboardFocus(e),e||this._setPressed(!1)},_detectKeyboardFocus:function(e){this._setReceivedFocusFromKeyboard(!this.pointerDown&&e)},_userActivate:function(e){this.active!==e&&(this.active=e,this.fire("change"))},_downHandler:function(e){this._setPointerDown(!0),this._setPressed(!0),this._setReceivedFocusFromKeyboard(!1)},_upHandler:function(){this._setPointerDown(!1),this._setPressed(!1)},_spaceKeyDownHandler:function(e){var t=e.detail.keyboardEvent,n=rr(t).localTarget;this.isLightDescendant(n)||(t.preventDefault(),t.stopImmediatePropagation(),this._setPressed(!0))},_spaceKeyUpHandler:function(e){var t=e.detail.keyboardEvent,n=rr(t).localTarget;this.isLightDescendant(n)||(this.pressed&&this._asyncClick(),this._setPressed(!1))},_asyncClick:function(){this.async((function(){this.click()}),1)},_pressedChanged:function(e){this._changedButtonState()},_ariaActiveAttributeChanged:function(e,t){t&&t!=e&&this.hasAttribute(t)&&this.removeAttribute(t)},_activeChanged:function(e,t){this.toggles?this.setAttribute(this.ariaActiveAttribute,e?"true":"false"):this.removeAttribute(this.ariaActiveAttribute),this._changedButtonState()},_controlStateChanged:function(){this.disabled?this._setPressed(!1):this._changedButtonState()},_changedButtonState:function(){this._buttonStateChanged&&this._buttonStateChanged()}},Lo=[wo,Oo];var Po={distance:function(e,t,n,i){var r=e-n,o=t-i;return Math.sqrt(r*r+o*o)},now:window.performance&&window.performance.now?window.performance.now.bind(window.performance):Date.now};function Ho(e){this.element=e,this.width=this.boundingRect.width,this.height=this.boundingRect.height,this.size=Math.max(this.width,this.height)}function Ro(e){this.element=e,this.color=window.getComputedStyle(e).color,this.wave=document.createElement("div"),this.waveContainer=document.createElement("div"),this.wave.style.backgroundColor=this.color,this.wave.classList.add("wave"),this.waveContainer.classList.add("wave-container"),rr(this.waveContainer).appendChild(this.wave),this.resetInteractionState()}Ho.prototype={get boundingRect(){return this.element.getBoundingClientRect()},furthestCornerDistanceFrom:function(e,t){var n=Po.distance(e,t,0,0),i=Po.distance(e,t,this.width,0),r=Po.distance(e,t,0,this.height),o=Po.distance(e,t,this.width,this.height);return Math.max(n,i,r,o)}},Ro.MAX_RADIUS=300,Ro.prototype={get recenters(){return this.element.recenters},get center(){return this.element.center},get mouseDownElapsed(){var e;return this.mouseDownStart?(e=Po.now()-this.mouseDownStart,this.mouseUpStart&&(e-=this.mouseUpElapsed),e):0},get mouseUpElapsed(){return this.mouseUpStart?Po.now()-this.mouseUpStart:0},get mouseDownElapsedSeconds(){return this.mouseDownElapsed/1e3},get mouseUpElapsedSeconds(){return this.mouseUpElapsed/1e3},get mouseInteractionSeconds(){return this.mouseDownElapsedSeconds+this.mouseUpElapsedSeconds},get initialOpacity(){return this.element.initialOpacity},get opacityDecayVelocity(){return this.element.opacityDecayVelocity},get radius(){var e=this.containerMetrics.width*this.containerMetrics.width,t=this.containerMetrics.height*this.containerMetrics.height,n=1.1*Math.min(Math.sqrt(e+t),Ro.MAX_RADIUS)+5,i=1.1-n/Ro.MAX_RADIUS*.2,r=this.mouseInteractionSeconds/i,o=n*(1-Math.pow(80,-r));return Math.abs(o)},get opacity(){return this.mouseUpStart?Math.max(0,this.initialOpacity-this.mouseUpElapsedSeconds*this.opacityDecayVelocity):this.initialOpacity},get outerOpacity(){var e=.3*this.mouseUpElapsedSeconds,t=this.opacity;return Math.max(0,Math.min(e,t))},get isOpacityFullyDecayed(){return this.opacity<.01&&this.radius>=Math.min(this.maxRadius,Ro.MAX_RADIUS)},get isRestingAtMaxRadius(){return this.opacity>=this.initialOpacity&&this.radius>=Math.min(this.maxRadius,Ro.MAX_RADIUS)},get isAnimationComplete(){return this.mouseUpStart?this.isOpacityFullyDecayed:this.isRestingAtMaxRadius},get translationFraction(){return Math.min(1,this.radius/this.containerMetrics.size*2/Math.sqrt(2))},get xNow(){return this.xEnd?this.xStart+this.translationFraction*(this.xEnd-this.xStart):this.xStart},get yNow(){return this.yEnd?this.yStart+this.translationFraction*(this.yEnd-this.yStart):this.yStart},get isMouseDown(){return this.mouseDownStart&&!this.mouseUpStart},resetInteractionState:function(){this.maxRadius=0,this.mouseDownStart=0,this.mouseUpStart=0,this.xStart=0,this.yStart=0,this.xEnd=0,this.yEnd=0,this.slideDistance=0,this.containerMetrics=new Ho(this.element)},draw:function(){var e,t,n;this.wave.style.opacity=this.opacity,e=this.radius/(this.containerMetrics.size/2),t=this.xNow-this.containerMetrics.width/2,n=this.yNow-this.containerMetrics.height/2,this.waveContainer.style.webkitTransform="translate("+t+"px, "+n+"px)",this.waveContainer.style.transform="translate3d("+t+"px, "+n+"px, 0)",this.wave.style.webkitTransform="scale("+e+","+e+")",this.wave.style.transform="scale3d("+e+","+e+",1)"},downAction:function(e){var t=this.containerMetrics.width/2,n=this.containerMetrics.height/2;this.resetInteractionState(),this.mouseDownStart=Po.now(),this.center?(this.xStart=t,this.yStart=n,this.slideDistance=Po.distance(this.xStart,this.yStart,this.xEnd,this.yEnd)):(this.xStart=e?e.detail.x-this.containerMetrics.boundingRect.left:this.containerMetrics.width/2,this.yStart=e?e.detail.y-this.containerMetrics.boundingRect.top:this.containerMetrics.height/2),this.recenters&&(this.xEnd=t,this.yEnd=n,this.slideDistance=Po.distance(this.xStart,this.yStart,this.xEnd,this.yEnd)),this.maxRadius=this.containerMetrics.furthestCornerDistanceFrom(this.xStart,this.yStart),this.waveContainer.style.top=(this.containerMetrics.height-this.containerMetrics.size)/2+"px",this.waveContainer.style.left=(this.containerMetrics.width-this.containerMetrics.size)/2+"px",this.waveContainer.style.width=this.containerMetrics.size+"px",this.waveContainer.style.height=this.containerMetrics.size+"px"},upAction:function(e){this.isMouseDown&&(this.mouseUpStart=Po.now())},remove:function(){rr(rr(this.waveContainer).parentNode).removeChild(this.waveContainer)}},xr({_template:Ot`
    <style>
      :host {
        display: block;
        position: absolute;
        border-radius: inherit;
        overflow: hidden;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;

        /* See PolymerElements/paper-behaviors/issues/34. On non-Chrome browsers,
         * creating a node (with a position:absolute) in the middle of an event
         * handler "interrupts" that event handler (which happens when the
         * ripple is created on demand) */
        pointer-events: none;
      }

      :host([animating]) {
        /* This resolves a rendering issue in Chrome (as of 40) where the
           ripple is not properly clipped by its parent (which may have
           rounded corners). See: http://jsbin.com/temexa/4

           Note: We only apply this style conditionally. Otherwise, the browser
           will create a new compositing layer for every ripple element on the
           page, and that would be bad. */
        -webkit-transform: translate(0, 0);
        transform: translate3d(0, 0, 0);
      }

      #background,
      #waves,
      .wave-container,
      .wave {
        pointer-events: none;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
      }

      #background,
      .wave {
        opacity: 0;
      }

      #waves,
      .wave {
        overflow: hidden;
      }

      .wave-container,
      .wave {
        border-radius: 50%;
      }

      :host(.circle) #background,
      :host(.circle) #waves {
        border-radius: 50%;
      }

      :host(.circle) .wave-container {
        overflow: hidden;
      }
    </style>

    <div id="background"></div>
    <div id="waves"></div>
`,is:"paper-ripple",behaviors:[wo],properties:{initialOpacity:{type:Number,value:.25},opacityDecayVelocity:{type:Number,value:.8},recenters:{type:Boolean,value:!1},center:{type:Boolean,value:!1},ripples:{type:Array,value:function(){return[]}},animating:{type:Boolean,readOnly:!0,reflectToAttribute:!0,value:!1},holdDown:{type:Boolean,value:!1,observer:"_holdDownChanged"},noink:{type:Boolean,value:!1},_animating:{type:Boolean},_boundAnimate:{type:Function,value:function(){return this.animate.bind(this)}}},get target(){return this.keyEventTarget},keyBindings:{"enter:keydown":"_onEnterKeydown","space:keydown":"_onSpaceKeydown","space:keyup":"_onSpaceKeyup"},attached:function(){11==rr(this).parentNode.nodeType?this.keyEventTarget=rr(this).getOwnerRoot().host:this.keyEventTarget=rr(this).parentNode;var e=this.keyEventTarget;this.listen(e,"up","uiUpAction"),this.listen(e,"down","uiDownAction")},detached:function(){this.unlisten(this.keyEventTarget,"up","uiUpAction"),this.unlisten(this.keyEventTarget,"down","uiDownAction"),this.keyEventTarget=null},get shouldKeepAnimating(){for(var e=0;e<this.ripples.length;++e)if(!this.ripples[e].isAnimationComplete)return!0;return!1},simulatedRipple:function(){this.downAction(null),this.async((function(){this.upAction()}),1)},uiDownAction:function(e){this.noink||this.downAction(e)},downAction:function(e){this.holdDown&&this.ripples.length>0||(this.addRipple().downAction(e),this._animating||(this._animating=!0,this.animate()))},uiUpAction:function(e){this.noink||this.upAction(e)},upAction:function(e){this.holdDown||(this.ripples.forEach((function(t){t.upAction(e)})),this._animating=!0,this.animate())},onAnimationComplete:function(){this._animating=!1,this.$.background.style.backgroundColor="",this.fire("transitionend")},addRipple:function(){var e=new Ro(this);return rr(this.$.waves).appendChild(e.waveContainer),this.$.background.style.backgroundColor=e.color,this.ripples.push(e),this._setAnimating(!0),e},removeRipple:function(e){var t=this.ripples.indexOf(e);t<0||(this.ripples.splice(t,1),e.remove(),this.ripples.length||this._setAnimating(!1))},animate:function(){if(this._animating){var e,t;for(e=0;e<this.ripples.length;++e)(t=this.ripples[e]).draw(),this.$.background.style.opacity=t.outerOpacity,t.isOpacityFullyDecayed&&!t.isRestingAtMaxRadius&&this.removeRipple(t);this.shouldKeepAnimating||0!==this.ripples.length?window.requestAnimationFrame(this._boundAnimate):this.onAnimationComplete()}},animateRipple:function(){return this.animate()},_onEnterKeydown:function(){this.uiDownAction(),this.async(this.uiUpAction,1)},_onSpaceKeydown:function(){this.uiDownAction()},_onSpaceKeyup:function(){this.uiUpAction()},_holdDownChanged:function(e,t){void 0!==t&&(e?this.downAction():this.upAction())}});const Vo={properties:{noink:{type:Boolean,observer:"_noinkChanged"},_rippleContainer:{type:Object}},_buttonStateChanged:function(){this.focused&&this.ensureRipple()},_downHandler:function(e){Oo._downHandler.call(this,e),this.pressed&&this.ensureRipple(e)},ensureRipple:function(e){if(!this.hasRipple()){this._ripple=this._createRipple(),this._ripple.noink=this.noink;var t=this._rippleContainer||this.root;if(t&&rr(t).appendChild(this._ripple),e){var n=rr(this._rippleContainer||this),i=rr(e).rootTarget;n.deepContains(i)&&this._ripple.uiDownAction(e)}}},getRipple:function(){return this.ensureRipple(),this._ripple},hasRipple:function(){return Boolean(this._ripple)},_createRipple:function(){return document.createElement("paper-ripple")},_noinkChanged:function(e){this.hasRipple()&&(this._ripple.noink=e)}},Bo={properties:{elevation:{type:Number,reflectToAttribute:!0,readOnly:!0}},observers:["_calculateElevation(focused, disabled, active, pressed, receivedFocusFromKeyboard)","_computeKeyboardClass(receivedFocusFromKeyboard)"],hostAttributes:{role:"button",tabindex:"0",animated:!0},_calculateElevation:function(){var e=1;this.disabled?e=0:this.active||this.pressed?e=4:this.receivedFocusFromKeyboard&&(e=3),this._setElevation(e)},_computeKeyboardClass:function(e){this.toggleClass("keyboard-focus",e)},_spaceKeyDownHandler:function(e){Oo._spaceKeyDownHandler.call(this,e),this.hasRipple()&&this.getRipple().ripples.length<1&&this._ripple.uiDownAction()},_spaceKeyUpHandler:function(e){Oo._spaceKeyUpHandler.call(this,e),this.hasRipple()&&this._ripple.uiUpAction()}},Do=[Lo,Io,Vo,Bo],Fo=Ot`
  <style include="paper-material-styles">
    /* Need to specify the same specificity as the styles imported from paper-material. */
    :host {
      @apply --layout-inline;
      @apply --layout-center-center;
      position: relative;
      box-sizing: border-box;
      min-width: 5.14em;
      margin: 0 0.29em;
      background: transparent;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
      -webkit-tap-highlight-color: transparent;
      font: inherit;
      text-transform: uppercase;
      outline-width: 0;
      border-radius: 3px;
      -moz-user-select: none;
      -ms-user-select: none;
      -webkit-user-select: none;
      user-select: none;
      cursor: pointer;
      z-index: 0;
      padding: 0.7em 0.57em;

      @apply --paper-font-common-base;
      @apply --paper-button;
    }

    :host([elevation="1"]) {
      @apply --paper-material-elevation-1;
    }

    :host([elevation="2"]) {
      @apply --paper-material-elevation-2;
    }

    :host([elevation="3"]) {
      @apply --paper-material-elevation-3;
    }

    :host([elevation="4"]) {
      @apply --paper-material-elevation-4;
    }

    :host([elevation="5"]) {
      @apply --paper-material-elevation-5;
    }

    :host([hidden]) {
      display: none !important;
    }

    :host([raised].keyboard-focus) {
      font-weight: bold;
      @apply --paper-button-raised-keyboard-focus;
    }

    :host(:not([raised]).keyboard-focus) {
      font-weight: bold;
      @apply --paper-button-flat-keyboard-focus;
    }

    :host([disabled]) {
      background: none;
      color: #a8a8a8;
      cursor: auto;
      pointer-events: none;

      @apply --paper-button-disabled;
    }

    :host([disabled][raised]) {
      background: #eaeaea;
    }


    :host([animated]) {
      @apply --shadow-transition;
    }

    paper-ripple {
      color: var(--paper-button-ink-color);
    }
  </style>

  <slot></slot>`;Fo.setAttribute("strip-whitespace",""),xr({_template:Fo,is:"paper-button",behaviors:[Do],properties:{raised:{type:Boolean,reflectToAttribute:!0,value:!1,observer:"_calculateElevation"}},_calculateElevation:function(){this.raised?Bo._calculateElevation.apply(this):this._setElevation(0)}});const jo=Ot`
<custom-style>
  <style is="custom-style">
    html {

      /* Material Design color palette for Google products */

      --google-red-100: #f4c7c3;
      --google-red-300: #e67c73;
      --google-red-500: #db4437;
      --google-red-700: #c53929;

      --google-blue-100: #c6dafc;
      --google-blue-300: #7baaf7;
      --google-blue-500: #4285f4;
      --google-blue-700: #3367d6;

      --google-green-100: #b7e1cd;
      --google-green-300: #57bb8a;
      --google-green-500: #0f9d58;
      --google-green-700: #0b8043;

      --google-yellow-100: #fce8b2;
      --google-yellow-300: #f7cb4d;
      --google-yellow-500: #f4b400;
      --google-yellow-700: #f09300;

      --google-grey-100: #f5f5f5;
      --google-grey-300: #e0e0e0;
      --google-grey-500: #9e9e9e;
      --google-grey-700: #616161;

      /* Material Design color palette from online spec document */

      --paper-red-50: #ffebee;
      --paper-red-100: #ffcdd2;
      --paper-red-200: #ef9a9a;
      --paper-red-300: #e57373;
      --paper-red-400: #ef5350;
      --paper-red-500: #f44336;
      --paper-red-600: #e53935;
      --paper-red-700: #d32f2f;
      --paper-red-800: #c62828;
      --paper-red-900: #b71c1c;
      --paper-red-a100: #ff8a80;
      --paper-red-a200: #ff5252;
      --paper-red-a400: #ff1744;
      --paper-red-a700: #d50000;

      --paper-pink-50: #fce4ec;
      --paper-pink-100: #f8bbd0;
      --paper-pink-200: #f48fb1;
      --paper-pink-300: #f06292;
      --paper-pink-400: #ec407a;
      --paper-pink-500: #e91e63;
      --paper-pink-600: #d81b60;
      --paper-pink-700: #c2185b;
      --paper-pink-800: #ad1457;
      --paper-pink-900: #880e4f;
      --paper-pink-a100: #ff80ab;
      --paper-pink-a200: #ff4081;
      --paper-pink-a400: #f50057;
      --paper-pink-a700: #c51162;

      --paper-purple-50: #f3e5f5;
      --paper-purple-100: #e1bee7;
      --paper-purple-200: #ce93d8;
      --paper-purple-300: #ba68c8;
      --paper-purple-400: #ab47bc;
      --paper-purple-500: #9c27b0;
      --paper-purple-600: #8e24aa;
      --paper-purple-700: #7b1fa2;
      --paper-purple-800: #6a1b9a;
      --paper-purple-900: #4a148c;
      --paper-purple-a100: #ea80fc;
      --paper-purple-a200: #e040fb;
      --paper-purple-a400: #d500f9;
      --paper-purple-a700: #aa00ff;

      --paper-deep-purple-50: #ede7f6;
      --paper-deep-purple-100: #d1c4e9;
      --paper-deep-purple-200: #b39ddb;
      --paper-deep-purple-300: #9575cd;
      --paper-deep-purple-400: #7e57c2;
      --paper-deep-purple-500: #673ab7;
      --paper-deep-purple-600: #5e35b1;
      --paper-deep-purple-700: #512da8;
      --paper-deep-purple-800: #4527a0;
      --paper-deep-purple-900: #311b92;
      --paper-deep-purple-a100: #b388ff;
      --paper-deep-purple-a200: #7c4dff;
      --paper-deep-purple-a400: #651fff;
      --paper-deep-purple-a700: #6200ea;

      --paper-indigo-50: #e8eaf6;
      --paper-indigo-100: #c5cae9;
      --paper-indigo-200: #9fa8da;
      --paper-indigo-300: #7986cb;
      --paper-indigo-400: #5c6bc0;
      --paper-indigo-500: #3f51b5;
      --paper-indigo-600: #3949ab;
      --paper-indigo-700: #303f9f;
      --paper-indigo-800: #283593;
      --paper-indigo-900: #1a237e;
      --paper-indigo-a100: #8c9eff;
      --paper-indigo-a200: #536dfe;
      --paper-indigo-a400: #3d5afe;
      --paper-indigo-a700: #304ffe;

      --paper-blue-50: #e3f2fd;
      --paper-blue-100: #bbdefb;
      --paper-blue-200: #90caf9;
      --paper-blue-300: #64b5f6;
      --paper-blue-400: #42a5f5;
      --paper-blue-500: #2196f3;
      --paper-blue-600: #1e88e5;
      --paper-blue-700: #1976d2;
      --paper-blue-800: #1565c0;
      --paper-blue-900: #0d47a1;
      --paper-blue-a100: #82b1ff;
      --paper-blue-a200: #448aff;
      --paper-blue-a400: #2979ff;
      --paper-blue-a700: #2962ff;

      --paper-light-blue-50: #e1f5fe;
      --paper-light-blue-100: #b3e5fc;
      --paper-light-blue-200: #81d4fa;
      --paper-light-blue-300: #4fc3f7;
      --paper-light-blue-400: #29b6f6;
      --paper-light-blue-500: #03a9f4;
      --paper-light-blue-600: #039be5;
      --paper-light-blue-700: #0288d1;
      --paper-light-blue-800: #0277bd;
      --paper-light-blue-900: #01579b;
      --paper-light-blue-a100: #80d8ff;
      --paper-light-blue-a200: #40c4ff;
      --paper-light-blue-a400: #00b0ff;
      --paper-light-blue-a700: #0091ea;

      --paper-cyan-50: #e0f7fa;
      --paper-cyan-100: #b2ebf2;
      --paper-cyan-200: #80deea;
      --paper-cyan-300: #4dd0e1;
      --paper-cyan-400: #26c6da;
      --paper-cyan-500: #00bcd4;
      --paper-cyan-600: #00acc1;
      --paper-cyan-700: #0097a7;
      --paper-cyan-800: #00838f;
      --paper-cyan-900: #006064;
      --paper-cyan-a100: #84ffff;
      --paper-cyan-a200: #18ffff;
      --paper-cyan-a400: #00e5ff;
      --paper-cyan-a700: #00b8d4;

      --paper-teal-50: #e0f2f1;
      --paper-teal-100: #b2dfdb;
      --paper-teal-200: #80cbc4;
      --paper-teal-300: #4db6ac;
      --paper-teal-400: #26a69a;
      --paper-teal-500: #009688;
      --paper-teal-600: #00897b;
      --paper-teal-700: #00796b;
      --paper-teal-800: #00695c;
      --paper-teal-900: #004d40;
      --paper-teal-a100: #a7ffeb;
      --paper-teal-a200: #64ffda;
      --paper-teal-a400: #1de9b6;
      --paper-teal-a700: #00bfa5;

      --paper-green-50: #e8f5e9;
      --paper-green-100: #c8e6c9;
      --paper-green-200: #a5d6a7;
      --paper-green-300: #81c784;
      --paper-green-400: #66bb6a;
      --paper-green-500: #4caf50;
      --paper-green-600: #43a047;
      --paper-green-700: #388e3c;
      --paper-green-800: #2e7d32;
      --paper-green-900: #1b5e20;
      --paper-green-a100: #b9f6ca;
      --paper-green-a200: #69f0ae;
      --paper-green-a400: #00e676;
      --paper-green-a700: #00c853;

      --paper-light-green-50: #f1f8e9;
      --paper-light-green-100: #dcedc8;
      --paper-light-green-200: #c5e1a5;
      --paper-light-green-300: #aed581;
      --paper-light-green-400: #9ccc65;
      --paper-light-green-500: #8bc34a;
      --paper-light-green-600: #7cb342;
      --paper-light-green-700: #689f38;
      --paper-light-green-800: #558b2f;
      --paper-light-green-900: #33691e;
      --paper-light-green-a100: #ccff90;
      --paper-light-green-a200: #b2ff59;
      --paper-light-green-a400: #76ff03;
      --paper-light-green-a700: #64dd17;

      --paper-lime-50: #f9fbe7;
      --paper-lime-100: #f0f4c3;
      --paper-lime-200: #e6ee9c;
      --paper-lime-300: #dce775;
      --paper-lime-400: #d4e157;
      --paper-lime-500: #cddc39;
      --paper-lime-600: #c0ca33;
      --paper-lime-700: #afb42b;
      --paper-lime-800: #9e9d24;
      --paper-lime-900: #827717;
      --paper-lime-a100: #f4ff81;
      --paper-lime-a200: #eeff41;
      --paper-lime-a400: #c6ff00;
      --paper-lime-a700: #aeea00;

      --paper-yellow-50: #fffde7;
      --paper-yellow-100: #fff9c4;
      --paper-yellow-200: #fff59d;
      --paper-yellow-300: #fff176;
      --paper-yellow-400: #ffee58;
      --paper-yellow-500: #ffeb3b;
      --paper-yellow-600: #fdd835;
      --paper-yellow-700: #fbc02d;
      --paper-yellow-800: #f9a825;
      --paper-yellow-900: #f57f17;
      --paper-yellow-a100: #ffff8d;
      --paper-yellow-a200: #ffff00;
      --paper-yellow-a400: #ffea00;
      --paper-yellow-a700: #ffd600;

      --paper-amber-50: #fff8e1;
      --paper-amber-100: #ffecb3;
      --paper-amber-200: #ffe082;
      --paper-amber-300: #ffd54f;
      --paper-amber-400: #ffca28;
      --paper-amber-500: #ffc107;
      --paper-amber-600: #ffb300;
      --paper-amber-700: #ffa000;
      --paper-amber-800: #ff8f00;
      --paper-amber-900: #ff6f00;
      --paper-amber-a100: #ffe57f;
      --paper-amber-a200: #ffd740;
      --paper-amber-a400: #ffc400;
      --paper-amber-a700: #ffab00;

      --paper-orange-50: #fff3e0;
      --paper-orange-100: #ffe0b2;
      --paper-orange-200: #ffcc80;
      --paper-orange-300: #ffb74d;
      --paper-orange-400: #ffa726;
      --paper-orange-500: #ff9800;
      --paper-orange-600: #fb8c00;
      --paper-orange-700: #f57c00;
      --paper-orange-800: #ef6c00;
      --paper-orange-900: #e65100;
      --paper-orange-a100: #ffd180;
      --paper-orange-a200: #ffab40;
      --paper-orange-a400: #ff9100;
      --paper-orange-a700: #ff6500;

      --paper-deep-orange-50: #fbe9e7;
      --paper-deep-orange-100: #ffccbc;
      --paper-deep-orange-200: #ffab91;
      --paper-deep-orange-300: #ff8a65;
      --paper-deep-orange-400: #ff7043;
      --paper-deep-orange-500: #ff5722;
      --paper-deep-orange-600: #f4511e;
      --paper-deep-orange-700: #e64a19;
      --paper-deep-orange-800: #d84315;
      --paper-deep-orange-900: #bf360c;
      --paper-deep-orange-a100: #ff9e80;
      --paper-deep-orange-a200: #ff6e40;
      --paper-deep-orange-a400: #ff3d00;
      --paper-deep-orange-a700: #dd2c00;

      --paper-brown-50: #efebe9;
      --paper-brown-100: #d7ccc8;
      --paper-brown-200: #bcaaa4;
      --paper-brown-300: #a1887f;
      --paper-brown-400: #8d6e63;
      --paper-brown-500: #795548;
      --paper-brown-600: #6d4c41;
      --paper-brown-700: #5d4037;
      --paper-brown-800: #4e342e;
      --paper-brown-900: #3e2723;

      --paper-grey-50: #fafafa;
      --paper-grey-100: #f5f5f5;
      --paper-grey-200: #eeeeee;
      --paper-grey-300: #e0e0e0;
      --paper-grey-400: #bdbdbd;
      --paper-grey-500: #9e9e9e;
      --paper-grey-600: #757575;
      --paper-grey-700: #616161;
      --paper-grey-800: #424242;
      --paper-grey-900: #212121;

      --paper-blue-grey-50: #eceff1;
      --paper-blue-grey-100: #cfd8dc;
      --paper-blue-grey-200: #b0bec5;
      --paper-blue-grey-300: #90a4ae;
      --paper-blue-grey-400: #78909c;
      --paper-blue-grey-500: #607d8b;
      --paper-blue-grey-600: #546e7a;
      --paper-blue-grey-700: #455a64;
      --paper-blue-grey-800: #37474f;
      --paper-blue-grey-900: #263238;

      /* opacity for dark text on a light background */
      --dark-divider-opacity: 0.12;
      --dark-disabled-opacity: 0.38; /* or hint text or icon */
      --dark-secondary-opacity: 0.54;
      --dark-primary-opacity: 0.87;

      /* opacity for light text on a dark background */
      --light-divider-opacity: 0.12;
      --light-disabled-opacity: 0.3; /* or hint text or icon */
      --light-secondary-opacity: 0.7;
      --light-primary-opacity: 1.0;

    }

  </style>
</custom-style>
`;jo.setAttribute("style","display: none;"),document.head.appendChild(jo.content);const Uo=Ot`
<custom-style>
  <style is="custom-style">
    html {
      /*
       * You can use these generic variables in your elements for easy theming.
       * For example, if all your elements use \`--primary-text-color\` as its main
       * color, then switching from a light to a dark theme is just a matter of
       * changing the value of \`--primary-text-color\` in your application.
       */
      --primary-text-color: var(--light-theme-text-color);
      --primary-background-color: var(--light-theme-background-color);
      --secondary-text-color: var(--light-theme-secondary-color);
      --disabled-text-color: var(--light-theme-disabled-color);
      --divider-color: var(--light-theme-divider-color);
      --error-color: var(--paper-deep-orange-a700);

      /*
       * Primary and accent colors. Also see color.js for more colors.
       */
      --primary-color: var(--paper-indigo-500);
      --light-primary-color: var(--paper-indigo-100);
      --dark-primary-color: var(--paper-indigo-700);

      --accent-color: var(--paper-pink-a200);
      --light-accent-color: var(--paper-pink-a100);
      --dark-accent-color: var(--paper-pink-a400);


      /*
       * Material Design Light background theme
       */
      --light-theme-background-color: #ffffff;
      --light-theme-base-color: #000000;
      --light-theme-text-color: var(--paper-grey-900);
      --light-theme-secondary-color: #737373;  /* for secondary text and icons */
      --light-theme-disabled-color: #9b9b9b;  /* disabled/hint text */
      --light-theme-divider-color: #dbdbdb;

      /*
       * Material Design Dark background theme
       */
      --dark-theme-background-color: var(--paper-grey-900);
      --dark-theme-base-color: #ffffff;
      --dark-theme-text-color: #ffffff;
      --dark-theme-secondary-color: #bcbcbc;  /* for secondary text and icons */
      --dark-theme-disabled-color: #646464;  /* disabled/hint text */
      --dark-theme-divider-color: #3c3c3c;

      /*
       * Deprecated values because of their confusing names.
       */
      --text-primary-color: var(--dark-theme-text-color);
      --default-primary-color: var(--primary-color);
    }
  </style>
</custom-style>`;Uo.setAttribute("style","display: none;"),document.head.appendChild(Uo.content);const $o={properties:{name:{type:String},value:{notify:!0,type:String},required:{type:Boolean,value:!1}},attached:function(){},detached:function(){}};let Go=null;const qo={properties:{validator:{type:String},invalid:{notify:!0,reflectToAttribute:!0,type:Boolean,value:!1,observer:"_invalidChanged"}},registered:function(){Go=new ao({type:"validator"})},_invalidChanged:function(){this.invalid?this.setAttribute("aria-invalid","true"):this.removeAttribute("aria-invalid")},get _validator(){return Go&&Go.byKey(this.validator)},hasValidator:function(){return null!=this._validator},validate:function(e){return void 0===e&&void 0!==this.value?this.invalid=!this._getValidity(this.value):this.invalid=!this._getValidity(e),!this.invalid},_getValidity:function(e){return!this.hasValidator()||this._validator.validate(e)}},Xo={properties:{checked:{type:Boolean,value:!1,reflectToAttribute:!0,notify:!0,observer:"_checkedChanged"},toggles:{type:Boolean,value:!0,reflectToAttribute:!0},value:{type:String,value:"on",observer:"_valueChanged"}},observers:["_requiredChanged(required)"],created:function(){this._hasIronCheckedElementBehavior=!0},_getValidity:function(e){return this.disabled||!this.required||this.checked},_requiredChanged:function(){this.required?this.setAttribute("aria-required","true"):this.removeAttribute("aria-required")},_checkedChanged:function(){this.active=this.checked,this.fire("iron-change")},_valueChanged:function(){void 0!==this.value&&null!==this.value||(this.value="on")}},Wo={observers:["_focusedChanged(receivedFocusFromKeyboard)"],_focusedChanged:function(e){e&&this.ensureRipple(),this.hasRipple()&&(this._ripple.holdDown=e)},_createRipple:function(){var e=Vo._createRipple();return e.id="ink",e.setAttribute("center",""),e.classList.add("circle"),e}},Ko=[Lo,Io,Vo,Wo],Yo=[Ko,[$o,qo,Xo],{_checkedChanged:function(){Xo._checkedChanged.call(this),this.hasRipple()&&(this.checked?this._ripple.setAttribute("checked",""):this._ripple.removeAttribute("checked"))},_buttonStateChanged:function(){Vo._buttonStateChanged.call(this),this.disabled||this.isAttached&&(this.checked=this.active)}}],Jo=Ot`<style>
  :host {
    display: inline-block;
    white-space: nowrap;
    cursor: pointer;
    --calculated-paper-checkbox-size: var(--paper-checkbox-size, 18px);
    /* -1px is a sentinel for the default and is replaced in \`attached\`. */
    --calculated-paper-checkbox-ink-size: var(--paper-checkbox-ink-size, -1px);
    @apply --paper-font-common-base;
    line-height: 0;
    -webkit-tap-highlight-color: transparent;
  }

  :host([hidden]) {
    display: none !important;
  }

  :host(:focus) {
    outline: none;
  }

  .hidden {
    display: none;
  }

  #checkboxContainer {
    display: inline-block;
    position: relative;
    width: var(--calculated-paper-checkbox-size);
    height: var(--calculated-paper-checkbox-size);
    min-width: var(--calculated-paper-checkbox-size);
    margin: var(--paper-checkbox-margin, initial);
    vertical-align: var(--paper-checkbox-vertical-align, middle);
    background-color: var(--paper-checkbox-unchecked-background-color, transparent);
  }

  #ink {
    position: absolute;

    /* Center the ripple in the checkbox by negative offsetting it by
     * (inkWidth - rippleWidth) / 2 */
    top: calc(0px - (var(--calculated-paper-checkbox-ink-size) - var(--calculated-paper-checkbox-size)) / 2);
    left: calc(0px - (var(--calculated-paper-checkbox-ink-size) - var(--calculated-paper-checkbox-size)) / 2);
    width: var(--calculated-paper-checkbox-ink-size);
    height: var(--calculated-paper-checkbox-ink-size);
    color: var(--paper-checkbox-unchecked-ink-color, var(--primary-text-color));
    opacity: 0.6;
    pointer-events: none;
  }

  #ink:dir(rtl) {
    right: calc(0px - (var(--calculated-paper-checkbox-ink-size) - var(--calculated-paper-checkbox-size)) / 2);
    left: auto;
  }

  #ink[checked] {
    color: var(--paper-checkbox-checked-ink-color, var(--primary-color));
  }

  #checkbox {
    position: relative;
    box-sizing: border-box;
    height: 100%;
    border: solid 2px;
    border-color: var(--paper-checkbox-unchecked-color, var(--primary-text-color));
    border-radius: 2px;
    pointer-events: none;
    -webkit-transition: background-color 140ms, border-color 140ms;
    transition: background-color 140ms, border-color 140ms;

    -webkit-transition-duration: var(--paper-checkbox-animation-duration, 140ms);
    transition-duration: var(--paper-checkbox-animation-duration, 140ms);
  }

  /* checkbox checked animations */
  #checkbox.checked #checkmark {
    -webkit-animation: checkmark-expand 140ms ease-out forwards;
    animation: checkmark-expand 140ms ease-out forwards;

    -webkit-animation-duration: var(--paper-checkbox-animation-duration, 140ms);
    animation-duration: var(--paper-checkbox-animation-duration, 140ms);
  }

  @-webkit-keyframes checkmark-expand {
    0% {
      -webkit-transform: scale(0, 0) rotate(45deg);
    }
    100% {
      -webkit-transform: scale(1, 1) rotate(45deg);
    }
  }

  @keyframes checkmark-expand {
    0% {
      transform: scale(0, 0) rotate(45deg);
    }
    100% {
      transform: scale(1, 1) rotate(45deg);
    }
  }

  #checkbox.checked {
    background-color: var(--paper-checkbox-checked-color, var(--primary-color));
    border-color: var(--paper-checkbox-checked-color, var(--primary-color));
  }

  #checkmark {
    position: absolute;
    width: 36%;
    height: 70%;
    border-style: solid;
    border-top: none;
    border-left: none;
    border-right-width: calc(2/15 * var(--calculated-paper-checkbox-size));
    border-bottom-width: calc(2/15 * var(--calculated-paper-checkbox-size));
    border-color: var(--paper-checkbox-checkmark-color, white);
    -webkit-transform-origin: 97% 86%;
    transform-origin: 97% 86%;
    box-sizing: content-box; /* protect against page-level box-sizing */
  }

  #checkmark:dir(rtl) {
    -webkit-transform-origin: 50% 14%;
    transform-origin: 50% 14%;
  }

  /* label */
  #checkboxLabel {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    padding-left: var(--paper-checkbox-label-spacing, 8px);
    white-space: normal;
    line-height: normal;
    color: var(--paper-checkbox-label-color, var(--primary-text-color));
    @apply --paper-checkbox-label;
  }

  :host([checked]) #checkboxLabel {
    color: var(--paper-checkbox-label-checked-color, var(--paper-checkbox-label-color, var(--primary-text-color)));
    @apply --paper-checkbox-label-checked;
  }

  #checkboxLabel:dir(rtl) {
    padding-right: var(--paper-checkbox-label-spacing, 8px);
    padding-left: 0;
  }

  #checkboxLabel[hidden] {
    display: none;
  }

  /* disabled state */

  :host([disabled]) #checkbox {
    opacity: 0.5;
    border-color: var(--paper-checkbox-unchecked-color, var(--primary-text-color));
  }

  :host([disabled][checked]) #checkbox {
    background-color: var(--paper-checkbox-unchecked-color, var(--primary-text-color));
    opacity: 0.5;
  }

  :host([disabled]) #checkboxLabel  {
    opacity: 0.65;
  }

  /* invalid state */
  #checkbox.invalid:not(.checked) {
    border-color: var(--paper-checkbox-error-color, var(--error-color));
  }
</style>

<div id="checkboxContainer">
  <div id="checkbox" class$="[[_computeCheckboxClass(checked, invalid)]]">
    <div id="checkmark" class$="[[_computeCheckmarkClass(checked)]]"></div>
  </div>
</div>

<div id="checkboxLabel"><slot></slot></div>`;if(Jo.setAttribute("strip-whitespace",""),xr({_template:Jo,is:"paper-checkbox",behaviors:[Yo],hostAttributes:{role:"checkbox","aria-checked":!1,tabindex:0},properties:{ariaActiveAttribute:{type:String,value:"aria-checked"}},attached:function(){Ui(this,(function(){if("-1px"===this.getComputedStyleValue("--calculated-paper-checkbox-ink-size").trim()){var e=this.getComputedStyleValue("--calculated-paper-checkbox-size").trim(),t="px",n=e.match(/[A-Za-z]+$/);null!==n&&(t=n[0]);var i=parseFloat(e),r=8/3*i;"px"===t&&(r=Math.floor(r))%2!=i%2&&r++,this.updateStyles({"--paper-checkbox-ink-size":r+t})}}))},_computeCheckboxClass:function(e,t){var n="";return e&&(n+="checked "),t&&(n+="invalid"),n},_computeCheckmarkClass:function(e){return e?"":"hidden"},_createRipple:function(){return this._rippleContainer=this.$.checkboxContainer,Wo._createRipple.call(this)}}),!window.polymerSkipLoadingFontRoboto){const e=document.createElement("link");e.rel="stylesheet",e.type="text/css",e.crossOrigin="anonymous",e.href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700|Roboto:400,300,300italic,400italic,500,500italic,700,700italic",document.head.appendChild(e)}const Zo=Ot`<custom-style>
  <style is="custom-style">
    html {

      /* Shared Styles */
      --paper-font-common-base: {
        font-family: 'Roboto', 'Noto', sans-serif;
        -webkit-font-smoothing: antialiased;
      };

      --paper-font-common-code: {
        font-family: 'Roboto Mono', 'Consolas', 'Menlo', monospace;
        -webkit-font-smoothing: antialiased;
      };

      --paper-font-common-expensive-kerning: {
        text-rendering: optimizeLegibility;
      };

      --paper-font-common-nowrap: {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      };

      /* Material Font Styles */

      --paper-font-display4: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 112px;
        font-weight: 300;
        letter-spacing: -.044em;
        line-height: 120px;
      };

      --paper-font-display3: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 56px;
        font-weight: 400;
        letter-spacing: -.026em;
        line-height: 60px;
      };

      --paper-font-display2: {
        @apply --paper-font-common-base;

        font-size: 45px;
        font-weight: 400;
        letter-spacing: -.018em;
        line-height: 48px;
      };

      --paper-font-display1: {
        @apply --paper-font-common-base;

        font-size: 34px;
        font-weight: 400;
        letter-spacing: -.01em;
        line-height: 40px;
      };

      --paper-font-headline: {
        @apply --paper-font-common-base;

        font-size: 24px;
        font-weight: 400;
        letter-spacing: -.012em;
        line-height: 32px;
      };

      --paper-font-title: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 20px;
        font-weight: 500;
        line-height: 28px;
      };

      --paper-font-subhead: {
        @apply --paper-font-common-base;

        font-size: 16px;
        font-weight: 400;
        line-height: 24px;
      };

      --paper-font-body2: {
        @apply --paper-font-common-base;

        font-size: 14px;
        font-weight: 500;
        line-height: 24px;
      };

      --paper-font-body1: {
        @apply --paper-font-common-base;

        font-size: 14px;
        font-weight: 400;
        line-height: 20px;
      };

      --paper-font-caption: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 12px;
        font-weight: 400;
        letter-spacing: 0.011em;
        line-height: 20px;
      };

      --paper-font-menu: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 13px;
        font-weight: 500;
        line-height: 24px;
      };

      --paper-font-button: {
        @apply --paper-font-common-base;
        @apply --paper-font-common-nowrap;

        font-size: 14px;
        font-weight: 500;
        letter-spacing: 0.018em;
        line-height: 24px;
        text-transform: uppercase;
      };

      --paper-font-code2: {
        @apply --paper-font-common-code;

        font-size: 14px;
        font-weight: 700;
        line-height: 20px;
      };

      --paper-font-code1: {
        @apply --paper-font-common-code;

        font-size: 14px;
        font-weight: 500;
        line-height: 20px;
      };

    }

  </style>
</custom-style>`;Zo.setAttribute("style","display: none;"),document.head.appendChild(Zo.content);const Qo=document.createElement("template");Qo.setAttribute("style","display: none;"),Qo.innerHTML='<dom-module id="paper-dialog-shared-styles">\n  <template>\n    <style>\n      :host {\n        display: block;\n        margin: 24px 40px;\n\n        background: var(--paper-dialog-background-color, var(--primary-background-color));\n        color: var(--paper-dialog-color, var(--primary-text-color));\n\n        @apply --paper-font-body1;\n        @apply --shadow-elevation-16dp;\n        @apply --paper-dialog;\n      }\n\n      :host > ::slotted(*) {\n        margin-top: 20px;\n        padding: 0 24px;\n      }\n\n      :host > ::slotted(.no-padding) {\n        padding: 0;\n      }\n\n      \n      :host > ::slotted(*:first-child) {\n        margin-top: 24px;\n      }\n\n      :host > ::slotted(*:last-child) {\n        margin-bottom: 24px;\n      }\n\n      /* In 1.x, this selector was `:host > ::content h2`. In 2.x <slot> allows\n      to select direct children only, which increases the weight of this\n      selector, so we have to re-define first-child/last-child margins below. */\n      :host > ::slotted(h2) {\n        position: relative;\n        margin: 0;\n\n        @apply --paper-font-title;\n        @apply --paper-dialog-title;\n      }\n\n      /* Apply mixin again, in case it sets margin-top. */\n      :host > ::slotted(h2:first-child) {\n        margin-top: 24px;\n        @apply --paper-dialog-title;\n      }\n\n      /* Apply mixin again, in case it sets margin-bottom. */\n      :host > ::slotted(h2:last-child) {\n        margin-bottom: 24px;\n        @apply --paper-dialog-title;\n      }\n\n      :host > ::slotted(.paper-dialog-buttons),\n      :host > ::slotted(.buttons) {\n        position: relative;\n        padding: 8px 8px 8px 24px;\n        margin: 0;\n\n        color: var(--paper-dialog-button-color, var(--primary-color));\n\n        @apply --layout-horizontal;\n        @apply --layout-end-justified;\n      }\n    </style>\n  </template>\n</dom-module>',document.head.appendChild(Qo.content);const ea={properties:{animationConfig:{type:Object},entryAnimation:{observer:"_entryAnimationChanged",type:String},exitAnimation:{observer:"_exitAnimationChanged",type:String}},_entryAnimationChanged:function(){this.animationConfig=this.animationConfig||{},this.animationConfig.entry=[{name:this.entryAnimation,node:this}]},_exitAnimationChanged:function(){this.animationConfig=this.animationConfig||{},this.animationConfig.exit=[{name:this.exitAnimation,node:this}]},_copyProperties:function(e,t){for(var n in t)e[n]=t[n]},_cloneConfig:function(e){var t={isClone:!0};return this._copyProperties(t,e),t},_getAnimationConfigRecursive:function(e,t,n){var i;if(this.animationConfig)if(this.animationConfig.value&&"function"==typeof this.animationConfig.value)this._warn(this._logf("playAnimation","Please put 'animationConfig' inside of your components 'properties' object instead of outside of it."));else if(i=e?this.animationConfig[e]:this.animationConfig,Array.isArray(i)||(i=[i]),i)for(var r,o=0;r=i[o];o++)if(r.animatable)r.animatable._getAnimationConfigRecursive(r.type||e,t,n);else if(r.id){var a=t[r.id];a?(a.isClone||(t[r.id]=this._cloneConfig(a),a=t[r.id]),this._copyProperties(a,r)):t[r.id]=r}else n.push(r)},getAnimationConfig:function(e){var t={},n=[];for(var i in this._getAnimationConfigRecursive(e,t,n),t)n.push(t[i]);return n}},ta={_configureAnimations:function(e){var t=[],n=[];if(e.length>0)for(let t,i=0;t=e[i];i++){let e=document.createElement(t.name);if(e.isNeonAnimation){let i=null;e.configure||(e.configure=function(e){return null}),i=e.configure(t),n.push({result:i,config:t,neonAnimation:e})}else console.warn(this.is+":",t.name,"not found!")}for(var i=0;i<n.length;i++){let e=n[i].result,r=n[i].config,o=n[i].neonAnimation;try{"function"!=typeof e.cancel&&(e=document.timeline.play(e))}catch(t){e=null,console.warn("Couldnt play","(",r.name,").",t)}e&&t.push({neonAnimation:o,config:r,animation:e})}return t},_shouldComplete:function(e){for(var t=!0,n=0;n<e.length;n++)if("finished"!=e[n].animation.playState){t=!1;break}return t},_complete:function(e){for(var t=0;t<e.length;t++)e[t].neonAnimation.complete(e[t].config);for(t=0;t<e.length;t++)e[t].animation.cancel()},playAnimation:function(e,t){var n=this.getAnimationConfig(e);if(n){this._active=this._active||{},this._active[e]&&(this._complete(this._active[e]),delete this._active[e]);var i=this._configureAnimations(n);if(0!=i.length){this._active[e]=i;for(var r=0;r<i.length;r++)i[r].animation.onfinish=function(){this._shouldComplete(i)&&(this._complete(i),delete this._active[e],this.fire("neon-animation-finish",t,{bubbles:!1}))}.bind(this)}else this.fire("neon-animation-finish",t,{bubbles:!1})}},cancelAnimation:function(){for(var e in this._active){var t=this._active[e];for(var n in t)t[n].animation.cancel()}this._active={}}},na=[ea,ta];let ia;const ra={properties:{sizingTarget:{type:Object,value:function(){return this}},fitInto:{type:Object,value:window},noOverlap:{type:Boolean},positionTarget:{type:Element},horizontalAlign:{type:String},verticalAlign:{type:String},dynamicAlign:{type:Boolean},horizontalOffset:{type:Number,value:0,notify:!0},verticalOffset:{type:Number,value:0,notify:!0},autoFitOnAttach:{type:Boolean,value:!1},expandSizingTargetForScrollbars:{type:Boolean,value:!1},_fitInfo:{type:Object}},get _fitWidth(){return this.fitInto===window?this.fitInto.innerWidth:this.fitInto.getBoundingClientRect().width},get _fitHeight(){return this.fitInto===window?this.fitInto.innerHeight:this.fitInto.getBoundingClientRect().height},get _fitLeft(){return this.fitInto===window?0:this.fitInto.getBoundingClientRect().left},get _fitTop(){return this.fitInto===window?0:this.fitInto.getBoundingClientRect().top},get _defaultPositionTarget(){var e=rr(this).parentNode;return e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&(e=e.host),e},get _localeHorizontalAlign(){if(this._isRTL){if("right"===this.horizontalAlign)return"left";if("left"===this.horizontalAlign)return"right"}return this.horizontalAlign},get __shouldPosition(){return(this.horizontalAlign||this.verticalAlign)&&this.positionTarget},get _isRTL(){return void 0===this._memoizedIsRTL&&(this._memoizedIsRTL="rtl"==window.getComputedStyle(this).direction),this._memoizedIsRTL},attached:function(){this.positionTarget=this.positionTarget||this._defaultPositionTarget,this.autoFitOnAttach&&("none"===window.getComputedStyle(this).display?setTimeout(function(){this.fit()}.bind(this)):(window.ShadyDOM&&ShadyDOM.flush(),this.fit()))},detached:function(){this.__deferredFit&&(clearTimeout(this.__deferredFit),this.__deferredFit=null)},fit:function(){this.position(),this.constrain(),this.center()},_discoverInfo:function(){if(!this._fitInfo){var e=window.getComputedStyle(this),t=window.getComputedStyle(this.sizingTarget);this._fitInfo={inlineStyle:{top:this.style.top||"",left:this.style.left||"",position:this.style.position||""},sizerInlineStyle:{maxWidth:this.sizingTarget.style.maxWidth||"",maxHeight:this.sizingTarget.style.maxHeight||"",boxSizing:this.sizingTarget.style.boxSizing||""},positionedBy:{vertically:"auto"!==e.top?"top":"auto"!==e.bottom?"bottom":null,horizontally:"auto"!==e.left?"left":"auto"!==e.right?"right":null},sizedBy:{height:"none"!==t.maxHeight,width:"none"!==t.maxWidth,minWidth:parseInt(t.minWidth,10)||0,minHeight:parseInt(t.minHeight,10)||0},margin:{top:parseInt(e.marginTop,10)||0,right:parseInt(e.marginRight,10)||0,bottom:parseInt(e.marginBottom,10)||0,left:parseInt(e.marginLeft,10)||0}}}},resetFit:function(){var e=this._fitInfo||{};for(var t in e.sizerInlineStyle)this.sizingTarget.style[t]=e.sizerInlineStyle[t];for(var t in e.inlineStyle)this.style[t]=e.inlineStyle[t];this._fitInfo=null},refit:function(){var e=this.sizingTarget.scrollLeft,t=this.sizingTarget.scrollTop;this.resetFit(),this.fit(),this.sizingTarget.scrollLeft=e,this.sizingTarget.scrollTop=t},position:function(){if(!this.__shouldPosition)return;this._discoverInfo(),window.ShadyDOM&&window.ShadyDOM.flush(),this.style.position="fixed",this.sizingTarget.style.boxSizing="border-box",this.style.left="0px",this.style.top="0px";var e=this.getBoundingClientRect(),t=this.__getNormalizedRect(this.positionTarget),n=this.__getNormalizedRect(this.fitInto);let i,r,o,a;this.expandSizingTargetForScrollbars&&(i=this.sizingTarget.offsetWidth,r=this.sizingTarget.offsetHeight,o=this.sizingTarget.clientWidth,a=this.sizingTarget.clientHeight);var s=this._fitInfo.margin,l={width:e.width+s.left+s.right,height:e.height+s.top+s.bottom},c=this.__getPosition(this._localeHorizontalAlign,this.verticalAlign,l,e,t,n),d=c.left+s.left,h=c.top+s.top,p=Math.min(n.right-s.right,d+e.width),u=Math.min(n.bottom-s.bottom,h+e.height);d=Math.max(n.left+s.left,Math.min(d,p-this._fitInfo.sizedBy.minWidth)),h=Math.max(n.top+s.top,Math.min(h,u-this._fitInfo.sizedBy.minHeight));const f=Math.max(p-d,this._fitInfo.sizedBy.minWidth),g=Math.max(u-h,this._fitInfo.sizedBy.minHeight);this.sizingTarget.style.maxWidth=f+"px",this.sizingTarget.style.maxHeight=g+"px";const m=d-e.left,v=h-e.top;if(this.style.left=`${m}px`,this.style.top=`${v}px`,this.expandSizingTargetForScrollbars){const e=this.sizingTarget.offsetHeight,t=e-this.sizingTarget.clientHeight-(r-a);if(t>0){const i=n.height-s.top-s.bottom,r=Math.min(i,g+t);this.sizingTarget.style.maxHeight=`${r}px`;const o=this.sizingTarget.offsetHeight,a=o-e;let l;"top"===c.verticalAlign?l=v:"middle"===c.verticalAlign?l=v-a/2:"bottom"===c.verticalAlign&&(l=v-a),l=Math.max(n.top+s.top,Math.min(l,n.bottom-s.bottom-o)),this.style.top=`${l}px`}const l=this.sizingTarget.offsetWidth,d=l-this.sizingTarget.clientWidth-(i-o);if(d>0){const e=(()=>{if(void 0!==ia)return ia;const e=document.createElement("div");Object.assign(e.style,{overflow:"auto",position:"fixed",left:"0px",top:"0px",maxWidth:"100px",maxHeight:"100px"});const t=document.createElement("div");return t.style.width="200px",t.style.height="200px",e.appendChild(t),document.body.appendChild(e),ia=Math.abs(e.offsetWidth-100)>1?e.offsetWidth-e.clientWidth:0,document.body.removeChild(e),ia})(),t=n.width-s.left-s.right,i=Math.min(t,f+d-e);this.sizingTarget.style.maxWidth=`${i}px`;const r=this.sizingTarget.offsetWidth+e,o=r-l;let a;"left"===c.horizontalAlign?a=m:"center"===c.horizontalAlign?a=m-o/2:"right"===c.horizontalAlign&&(a=m-o),a=Math.max(n.left+s.left,Math.min(a,n.right-s.right-r)),this.style.left=`${a}px`}}},constrain:function(){if(!this.__shouldPosition){this._discoverInfo();var e=this._fitInfo;e.positionedBy.vertically||(this.style.position="fixed",this.style.top="0px"),e.positionedBy.horizontally||(this.style.position="fixed",this.style.left="0px"),this.sizingTarget.style.boxSizing="border-box";var t=this.getBoundingClientRect();e.sizedBy.height||this.__sizeDimension(t,e.positionedBy.vertically,"top","bottom","Height"),e.sizedBy.width||this.__sizeDimension(t,e.positionedBy.horizontally,"left","right","Width")}},_sizeDimension:function(e,t,n,i,r){this.__sizeDimension(e,t,n,i,r)},__sizeDimension:function(e,t,n,i,r){var o=this._fitInfo,a=this.__getNormalizedRect(this.fitInto),s="Width"===r?a.width:a.height,l=t===i,c=l?s-e[i]:e[n],d=o.margin[l?n:i],h="offset"+r,p=this[h]-this.sizingTarget[h];this.sizingTarget.style["max"+r]=s-d-c-p+"px"},center:function(){if(!this.__shouldPosition){this._discoverInfo();var e=this._fitInfo.positionedBy;if(!e.vertically||!e.horizontally){this.style.position="fixed",e.vertically||(this.style.top="0px"),e.horizontally||(this.style.left="0px");var t=this.getBoundingClientRect(),n=this.__getNormalizedRect(this.fitInto);if(!e.vertically){var i=n.top-t.top+(n.height-t.height)/2;this.style.top=i+"px"}if(!e.horizontally){var r=n.left-t.left+(n.width-t.width)/2;this.style.left=r+"px"}}}},__getNormalizedRect:function(e){return e===document.documentElement||e===window?{top:0,left:0,width:window.innerWidth,height:window.innerHeight,right:window.innerWidth,bottom:window.innerHeight}:e.getBoundingClientRect()},__getOffscreenArea:function(e,t,n){var i=Math.min(0,e.top)+Math.min(0,n.bottom-(e.top+t.height)),r=Math.min(0,e.left)+Math.min(0,n.right-(e.left+t.width));return Math.abs(i)*t.width+Math.abs(r)*t.height},__getPosition:function(e,t,n,i,r,o){var a,s=[{verticalAlign:"top",horizontalAlign:"left",top:r.top+this.verticalOffset,left:r.left+this.horizontalOffset},{verticalAlign:"top",horizontalAlign:"right",top:r.top+this.verticalOffset,left:r.right-n.width-this.horizontalOffset},{verticalAlign:"bottom",horizontalAlign:"left",top:r.bottom-n.height-this.verticalOffset,left:r.left+this.horizontalOffset},{verticalAlign:"bottom",horizontalAlign:"right",top:r.bottom-n.height-this.verticalOffset,left:r.right-n.width-this.horizontalOffset}];if(this.noOverlap){for(var l=0,c=s.length;l<c;l++){var d={};for(var h in s[l])d[h]=s[l][h];s.push(d)}s[0].top=s[1].top+=r.height,s[2].top=s[3].top-=r.height,s[4].left=s[6].left+=r.width,s[5].left=s[7].left-=r.width}for(t="auto"===t?null:t,(e="auto"===e?null:e)&&"center"!==e||(s.push({verticalAlign:"top",horizontalAlign:"center",top:r.top+this.verticalOffset+(this.noOverlap?r.height:0),left:r.left-i.width/2+r.width/2+this.horizontalOffset}),s.push({verticalAlign:"bottom",horizontalAlign:"center",top:r.bottom-n.height-this.verticalOffset-(this.noOverlap?r.height:0),left:r.left-i.width/2+r.width/2+this.horizontalOffset})),t&&"middle"!==t||(s.push({verticalAlign:"middle",horizontalAlign:"left",top:r.top-i.height/2+r.height/2+this.verticalOffset,left:r.left+this.horizontalOffset+(this.noOverlap?r.width:0)}),s.push({verticalAlign:"middle",horizontalAlign:"right",top:r.top-i.height/2+r.height/2+this.verticalOffset,left:r.right-n.width-this.horizontalOffset-(this.noOverlap?r.width:0)})),"middle"===t&&"center"===e&&s.push({verticalAlign:"middle",horizontalAlign:"center",top:r.top-i.height/2+r.height/2+this.verticalOffset,left:r.left-i.width/2+r.width/2+this.horizontalOffset}),l=0;l<s.length;l++){var p=s[l],u=p.verticalAlign===t,f=p.horizontalAlign===e;if(!this.dynamicAlign&&!this.noOverlap&&u&&f){a=p;break}var g=(!t||u)&&(!e||f);if(this.dynamicAlign||g){if(p.offscreenArea=this.__getOffscreenArea(p,n,o),0===p.offscreenArea&&g){a=p;break}a=a||p;var m=p.offscreenArea-a.offscreenArea;(m<0||0===m&&(u||f))&&(a=p)}}return a}};var oa=Element.prototype,aa=oa.matches||oa.matchesSelector||oa.mozMatchesSelector||oa.msMatchesSelector||oa.oMatchesSelector||oa.webkitMatchesSelector;const sa=new class{getTabbableNodes(e){var t=[];return this._collectTabbableNodes(e,t)?this._sortByTabIndex(t):t}isFocusable(e){return aa.call(e,"input, select, textarea, button, object")?aa.call(e,":not([disabled])"):aa.call(e,"a[href], area[href], iframe, [tabindex], [contentEditable]")}isTabbable(e){return this.isFocusable(e)&&aa.call(e,':not([tabindex="-1"])')&&this._isVisible(e)}_normalizedTabIndex(e){if(this.isFocusable(e)){var t=e.getAttribute("tabindex")||0;return Number(t)}return-1}_collectTabbableNodes(e,t){if(e.nodeType!==Node.ELEMENT_NODE)return!1;var n=e;if(!this._isVisible(n))return!1;var i,r=this._normalizedTabIndex(n),o=r>0;r>=0&&t.push(n),i="content"===n.localName||"slot"===n.localName?rr(n).getDistributedNodes():rr(n.root||n).children;for(var a=0;a<i.length;a++)o=this._collectTabbableNodes(i[a],t)||o;return o}_isVisible(e){var t=e.style;return"hidden"!==t.visibility&&"none"!==t.display&&"hidden"!==(t=window.getComputedStyle(e)).visibility&&"none"!==t.display}_sortByTabIndex(e){var t=e.length;if(t<2)return e;var n=Math.ceil(t/2),i=this._sortByTabIndex(e.slice(0,n)),r=this._sortByTabIndex(e.slice(n));return this._mergeSortByTabIndex(i,r)}_mergeSortByTabIndex(e,t){for(var n=[];e.length>0&&t.length>0;)this._hasLowerTabOrder(e[0],t[0])?n.push(t.shift()):n.push(e.shift());return n.concat(e,t)}_hasLowerTabOrder(e,t){var n=Math.max(e.tabIndex,0),i=Math.max(t.tabIndex,0);return 0===n||0===i?i>n:n>i}};xr({_template:Ot`
    <style>
      :host {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: var(--iron-overlay-backdrop-background-color, #000);
        opacity: 0;
        transition: opacity 0.2s;
        pointer-events: none;
        @apply --iron-overlay-backdrop;
      }

      :host(.opened) {
        opacity: var(--iron-overlay-backdrop-opacity, 0.6);
        pointer-events: auto;
        @apply --iron-overlay-backdrop-opened;
      }
    </style>

    <slot></slot>
`,is:"iron-overlay-backdrop",properties:{opened:{reflectToAttribute:!0,type:Boolean,value:!1,observer:"_openedChanged"}},listeners:{transitionend:"_onTransitionend"},created:function(){this.__openedRaf=null},attached:function(){this.opened&&this._openedChanged(this.opened)},prepare:function(){this.opened&&!this.parentNode&&rr(document.body).appendChild(this)},open:function(){this.opened=!0},close:function(){this.opened=!1},complete:function(){this.opened||this.parentNode!==document.body||rr(this.parentNode).removeChild(this)},_onTransitionend:function(e){e&&e.target===this&&this.complete()},_openedChanged:function(e){if(e)this.prepare();else{var t=window.getComputedStyle(this);"0s"!==t.transitionDuration&&0!=t.opacity||this.complete()}this.isAttached&&(this.__openedRaf&&(window.cancelAnimationFrame(this.__openedRaf),this.__openedRaf=null),this.scrollTop=this.scrollTop,this.__openedRaf=window.requestAnimationFrame(function(){this.__openedRaf=null,this.toggleClass("opened",this.opened)}.bind(this)))}});const la=new class{constructor(){this._overlays=[],this._minimumZ=101,this._backdropElement=null,mi(document.documentElement,"tap",(function(){})),document.addEventListener("tap",this._onCaptureClick.bind(this),!0),document.addEventListener("focus",this._onCaptureFocus.bind(this),!0),document.addEventListener("keydown",this._onCaptureKeyDown.bind(this),!0)}get backdropElement(){return this._backdropElement||(this._backdropElement=document.createElement("iron-overlay-backdrop")),this._backdropElement}get deepActiveElement(){var e=document.activeElement;for(e&&e instanceof Element!=0||(e=document.body);e.root&&rr(e.root).activeElement;)e=rr(e.root).activeElement;return e}_bringOverlayAtIndexToFront(e){var t=this._overlays[e];if(t){var n=this._overlays.length-1,i=this._overlays[n];if(i&&this._shouldBeBehindOverlay(t,i)&&n--,!(e>=n)){var r=Math.max(this.currentOverlayZ(),this._minimumZ);for(this._getZ(t)<=r&&this._applyOverlayZ(t,r);e<n;)this._overlays[e]=this._overlays[e+1],e++;this._overlays[n]=t}}}addOrRemoveOverlay(e){e.opened?this.addOverlay(e):this.removeOverlay(e)}addOverlay(e){var t=this._overlays.indexOf(e);if(t>=0)return this._bringOverlayAtIndexToFront(t),void this.trackBackdrop();var n=this._overlays.length,i=this._overlays[n-1],r=Math.max(this._getZ(i),this._minimumZ),o=this._getZ(e);if(i&&this._shouldBeBehindOverlay(e,i)){this._applyOverlayZ(i,r),n--;var a=this._overlays[n-1];r=Math.max(this._getZ(a),this._minimumZ)}o<=r&&this._applyOverlayZ(e,r),this._overlays.splice(n,0,e),this.trackBackdrop()}removeOverlay(e){var t=this._overlays.indexOf(e);-1!==t&&(this._overlays.splice(t,1),this.trackBackdrop())}currentOverlay(){var e=this._overlays.length-1;return this._overlays[e]}currentOverlayZ(){return this._getZ(this.currentOverlay())}ensureMinimumZ(e){this._minimumZ=Math.max(this._minimumZ,e)}focusOverlay(){var e=this.currentOverlay();e&&e._applyFocus()}trackBackdrop(){var e=this._overlayWithBackdrop();(e||this._backdropElement)&&(this.backdropElement.style.zIndex=this._getZ(e)-1,this.backdropElement.opened=!!e,this.backdropElement.prepare())}getBackdrops(){for(var e=[],t=0;t<this._overlays.length;t++)this._overlays[t].withBackdrop&&e.push(this._overlays[t]);return e}backdropZ(){return this._getZ(this._overlayWithBackdrop())-1}_overlayWithBackdrop(){for(var e=this._overlays.length-1;e>=0;e--)if(this._overlays[e].withBackdrop)return this._overlays[e]}_getZ(e){var t=this._minimumZ;if(e){var n=Number(e.style.zIndex||window.getComputedStyle(e).zIndex);n==n&&(t=n)}return t}_setZ(e,t){e.style.zIndex=t}_applyOverlayZ(e,t){this._setZ(e,t+2)}_overlayInPath(e){e=e||[];for(var t=0;t<e.length;t++)if(e[t]._manager===this)return e[t]}_onCaptureClick(e){var t=this._overlays.length-1;if(-1!==t)for(var n,i=rr(e).path;(n=this._overlays[t])&&this._overlayInPath(i)!==n&&(n._onCaptureClick(e),n.allowClickThrough);)t--}_onCaptureFocus(e){var t=this.currentOverlay();t&&t._onCaptureFocus(e)}_onCaptureKeyDown(e){var t=this.currentOverlay();t&&(wo.keyboardEventMatchesKeys(e,"esc")?t._onCaptureEsc(e):wo.keyboardEventMatchesKeys(e,"tab")&&t._onCaptureTab(e))}_shouldBeBehindOverlay(e,t){return!e.alwaysOnTop&&t.alwaysOnTop}};var ca,da,ha={pageX:0,pageY:0},pa=null,ua=[],fa=["wheel","mousewheel","DOMMouseScroll","touchstart","touchmove"];function ga(e){ma.indexOf(e)>=0||(0===ma.length&&function(){ca=ca||_a.bind(void 0);for(var e=0,t=fa.length;e<t;e++)document.addEventListener(fa[e],ca,{capture:!0,passive:!1})}(),ma.push(e),da=ma[ma.length-1],va=[],ya=[])}const ma=[];let va=null,ya=null;function _a(e){if(e.cancelable&&function(e){var t=rr(e).rootTarget;if("touchmove"!==e.type&&pa!==t&&(pa=t,ua=function(e){for(var t=[],n=e.indexOf(da),i=0;i<=n;i++)if(e[i].nodeType===Node.ELEMENT_NODE){var r=e[i],o=r.style;"scroll"!==o.overflow&&"auto"!==o.overflow&&(o=window.getComputedStyle(r)),"scroll"!==o.overflow&&"auto"!==o.overflow||t.push(r)}return t}(rr(e).path)),!ua.length)return!0;if("touchstart"===e.type)return!1;var n=function(e){var t={deltaX:e.deltaX,deltaY:e.deltaY};if("deltaX"in e);else if("wheelDeltaX"in e&&"wheelDeltaY"in e)t.deltaX=-e.wheelDeltaX,t.deltaY=-e.wheelDeltaY;else if("wheelDelta"in e)t.deltaX=0,t.deltaY=-e.wheelDelta;else if("axis"in e)t.deltaX=1===e.axis?e.detail:0,t.deltaY=2===e.axis?e.detail:0;else if(e.targetTouches){var n=e.targetTouches[0];t.deltaX=ha.pageX-n.pageX,t.deltaY=ha.pageY-n.pageY}return t}(e);return!function(e,t,n){if(t||n)for(var i=Math.abs(n)>=Math.abs(t),r=0;r<e.length;r++){var o=e[r];if(i?n<0?o.scrollTop>0:o.scrollTop<o.scrollHeight-o.clientHeight:t<0?o.scrollLeft>0:o.scrollLeft<o.scrollWidth-o.clientWidth)return o}}(ua,n.deltaX,n.deltaY)}(e)&&e.preventDefault(),e.targetTouches){var t=e.targetTouches[0];ha.pageX=t.pageX,ha.pageY=t.pageY}}const ba={properties:{opened:{observer:"_openedChanged",type:Boolean,value:!1,notify:!0},canceled:{observer:"_canceledChanged",readOnly:!0,type:Boolean,value:!1},withBackdrop:{observer:"_withBackdropChanged",type:Boolean},noAutoFocus:{type:Boolean,value:!1},noCancelOnEscKey:{type:Boolean,value:!1},noCancelOnOutsideClick:{type:Boolean,value:!1},closingReason:{type:Object},restoreFocusOnClose:{type:Boolean,value:!1},allowClickThrough:{type:Boolean},alwaysOnTop:{type:Boolean},scrollAction:{type:String},_manager:{type:Object,value:la},_focusedChild:{type:Object}},listeners:{"iron-resize":"_onIronResize"},observers:["__updateScrollObservers(isAttached, opened, scrollAction)"],get backdropElement(){return this._manager.backdropElement},get _focusNode(){return this._focusedChild||rr(this).querySelector("[autofocus]")||this},get _focusableNodes(){return sa.getTabbableNodes(this)},ready:function(){this.__isAnimating=!1,this.__shouldRemoveTabIndex=!1,this.__firstFocusableNode=this.__lastFocusableNode=null,this.__rafs={},this.__restoreFocusNode=null,this.__scrollTop=this.__scrollLeft=null,this.__onCaptureScroll=this.__onCaptureScroll.bind(this),this.__rootNodes=null,this._ensureSetup()},attached:function(){this.opened&&this._openedChanged(this.opened),this._observer=rr(this).observeNodes(this._onNodesChange)},detached:function(){for(var e in this._observer&&rr(this).unobserveNodes(this._observer),this._observer=null,this.__rafs)null!==this.__rafs[e]&&cancelAnimationFrame(this.__rafs[e]);this.__rafs={},this._manager.removeOverlay(this),this.__isAnimating&&(this.opened?this._finishRenderOpened():(this._applyFocus(),this._finishRenderClosed()))},toggle:function(){this._setCanceled(!1),this.opened=!this.opened},open:function(){this._setCanceled(!1),this.opened=!0},close:function(){this._setCanceled(!1),this.opened=!1},cancel:function(e){this.fire("iron-overlay-canceled",e,{cancelable:!0}).defaultPrevented||(this._setCanceled(!0),this.opened=!1)},invalidateTabbables:function(){this.__firstFocusableNode=this.__lastFocusableNode=null},_ensureSetup:function(){this._overlaySetup||(this._overlaySetup=!0,this.style.outline="none",this.style.display="none")},_openedChanged:function(e){e?this.removeAttribute("aria-hidden"):this.setAttribute("aria-hidden","true"),this.isAttached&&(this.__isAnimating=!0,this.__deraf("__openedChanged",this.__openedChanged))},_canceledChanged:function(){this.closingReason=this.closingReason||{},this.closingReason.canceled=this.canceled},_withBackdropChanged:function(){this.withBackdrop&&!this.hasAttribute("tabindex")?(this.setAttribute("tabindex","-1"),this.__shouldRemoveTabIndex=!0):this.__shouldRemoveTabIndex&&(this.removeAttribute("tabindex"),this.__shouldRemoveTabIndex=!1),this.opened&&this.isAttached&&this._manager.trackBackdrop()},_prepareRenderOpened:function(){this.__restoreFocusNode=this._manager.deepActiveElement,this._preparePositioning(),this.refit(),this._finishPositioning(),this.noAutoFocus&&document.activeElement===this._focusNode&&(this._focusNode.blur(),this.__restoreFocusNode.focus())},_renderOpened:function(){this._finishRenderOpened()},_renderClosed:function(){this._finishRenderClosed()},_finishRenderOpened:function(){this.notifyResize(),this.__isAnimating=!1,this.fire("iron-overlay-opened")},_finishRenderClosed:function(){this.style.display="none",this.style.zIndex="",this.notifyResize(),this.__isAnimating=!1,this.fire("iron-overlay-closed",this.closingReason)},_preparePositioning:function(){this.style.transition=this.style.webkitTransition="none",this.style.transform=this.style.webkitTransform="none",this.style.display=""},_finishPositioning:function(){this.style.display="none",this.scrollTop=this.scrollTop,this.style.transition=this.style.webkitTransition="",this.style.transform=this.style.webkitTransform="",this.style.display="",this.scrollTop=this.scrollTop},_applyFocus:function(){if(this.opened)this.noAutoFocus||this._focusNode.focus();else{if(this.restoreFocusOnClose&&this.__restoreFocusNode){var e=this._manager.deepActiveElement;(e===document.body||xa(this,e))&&this.__restoreFocusNode.focus()}this.__restoreFocusNode=null,this._focusNode.blur(),this._focusedChild=null}},_onCaptureClick:function(e){this.noCancelOnOutsideClick||this.cancel(e)},_onCaptureFocus:function(e){if(this.withBackdrop){var t=rr(e).path;-1===t.indexOf(this)?(e.stopPropagation(),this._applyFocus()):this._focusedChild=t[0]}},_onCaptureEsc:function(e){this.noCancelOnEscKey||this.cancel(e)},_onCaptureTab:function(e){if(this.withBackdrop){this.__ensureFirstLastFocusables();var t=e.shiftKey,n=t?this.__firstFocusableNode:this.__lastFocusableNode,i=t?this.__lastFocusableNode:this.__firstFocusableNode,r=!1;if(n===i)r=!0;else{var o=this._manager.deepActiveElement;r=o===n||o===this}r&&(e.preventDefault(),this._focusedChild=i,this._applyFocus())}},_onIronResize:function(){this.opened&&!this.__isAnimating&&this.__deraf("refit",this.refit)},_onNodesChange:function(){this.opened&&!this.__isAnimating&&(this.invalidateTabbables(),this.notifyResize())},__ensureFirstLastFocusables:function(){var e=this._focusableNodes;this.__firstFocusableNode=e[0],this.__lastFocusableNode=e[e.length-1]},__openedChanged:function(){this.opened?(this._prepareRenderOpened(),this._manager.addOverlay(this),this._applyFocus(),this._renderOpened()):(this._manager.removeOverlay(this),this._applyFocus(),this._renderClosed())},__deraf:function(e,t){var n=this.__rafs;null!==n[e]&&cancelAnimationFrame(n[e]),n[e]=requestAnimationFrame(function(){n[e]=null,t.call(this)}.bind(this))},__updateScrollObservers:function(e,t,n){var i,r;e&&t&&this.__isValidScrollAction(n)?("lock"===n&&(this.__saveScrollPosition(),ga(this)),this.__addScrollListeners()):(i=this,-1!==(r=ma.indexOf(i))&&(ma.splice(r,1),da=ma[ma.length-1],va=[],ya=[],0===ma.length&&function(){for(var e=0,t=fa.length;e<t;e++)document.removeEventListener(fa[e],ca,{capture:!0,passive:!1})}()),this.__removeScrollListeners())},__addScrollListeners:function(){if(!this.__rootNodes){if(this.__rootNodes=[],w)for(var e=this;e;)e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.host&&this.__rootNodes.push(e),e=e.host||e.assignedSlot||e.parentNode;this.__rootNodes.push(document)}this.__rootNodes.forEach((function(e){e.addEventListener("scroll",this.__onCaptureScroll,{capture:!0,passive:!0})}),this)},__removeScrollListeners:function(){this.__rootNodes&&this.__rootNodes.forEach((function(e){e.removeEventListener("scroll",this.__onCaptureScroll,{capture:!0,passive:!0})}),this),this.isAttached||(this.__rootNodes=null)},__isValidScrollAction:function(e){return"lock"===e||"refit"===e||"cancel"===e},__onCaptureScroll:function(e){if(!(this.__isAnimating||rr(e).path.indexOf(this)>=0))switch(this.scrollAction){case"lock":this.__restoreScrollPosition();break;case"refit":this.__deraf("refit",this.refit);break;case"cancel":this.cancel(e)}},__saveScrollPosition:function(){document.scrollingElement?(this.__scrollTop=document.scrollingElement.scrollTop,this.__scrollLeft=document.scrollingElement.scrollLeft):(this.__scrollTop=Math.max(document.documentElement.scrollTop,document.body.scrollTop),this.__scrollLeft=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft))},__restoreScrollPosition:function(){document.scrollingElement?(document.scrollingElement.scrollTop=this.__scrollTop,document.scrollingElement.scrollLeft=this.__scrollLeft):(document.documentElement.scrollTop=document.body.scrollTop=this.__scrollTop,document.documentElement.scrollLeft=document.body.scrollLeft=this.__scrollLeft)}},xa=(e,t)=>{for(let i=t;i;i=(n=i).assignedSlot||n.parentNode||n.host)if(i===e)return!0;var n;return!1},wa=[ra,no,ba],Sa={hostAttributes:{role:"dialog",tabindex:"-1"},properties:{modal:{type:Boolean,value:!1},__readied:{type:Boolean,value:!1}},observers:["_modalChanged(modal, __readied)"],listeners:{tap:"_onDialogClick"},ready:function(){this.__prevNoCancelOnOutsideClick=this.noCancelOnOutsideClick,this.__prevNoCancelOnEscKey=this.noCancelOnEscKey,this.__prevWithBackdrop=this.withBackdrop,this.__readied=!0},_modalChanged:function(e,t){t&&(e?(this.__prevNoCancelOnOutsideClick=this.noCancelOnOutsideClick,this.__prevNoCancelOnEscKey=this.noCancelOnEscKey,this.__prevWithBackdrop=this.withBackdrop,this.noCancelOnOutsideClick=!0,this.noCancelOnEscKey=!0,this.withBackdrop=!0):(this.noCancelOnOutsideClick=this.noCancelOnOutsideClick&&this.__prevNoCancelOnOutsideClick,this.noCancelOnEscKey=this.noCancelOnEscKey&&this.__prevNoCancelOnEscKey,this.withBackdrop=this.withBackdrop&&this.__prevWithBackdrop))},_updateClosingReasonConfirmed:function(e){this.closingReason=this.closingReason||{},this.closingReason.confirmed=e},_onDialogClick:function(e){for(var t=rr(e).path,n=0,i=t.indexOf(this);n<i;n++){var r=t[n];if(r.hasAttribute&&(r.hasAttribute("dialog-dismiss")||r.hasAttribute("dialog-confirm"))){this._updateClosingReasonConfirmed(r.hasAttribute("dialog-confirm")),this.close(),e.stopPropagation();break}}}};xr({_template:Ot`
    <style include="paper-dialog-shared-styles"></style>
    <slot></slot>
`,is:"paper-dialog",behaviors:[[wa,Sa],na],listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},_renderOpened:function(){this.cancelAnimation(),this.playAnimation("entry")},_renderClosed:function(){this.cancelAnimation(),this.playAnimation("exit")},_onNeonAnimationFinish:function(){this.opened?this._finishRenderOpened():this._finishRenderClosed()}}),xr({_template:Ot`
    <style>

      :host {
        display: block;
        @apply --layout-relative;
      }

      :host(.is-scrolled:not(:first-child))::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 1px;
        background: var(--divider-color);
      }

      :host(.can-scroll:not(.scrolled-to-bottom):not(:last-child))::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 1px;
        background: var(--divider-color);
      }

      .scrollable {
        padding: 0 24px;

        @apply --layout-scroll;
        @apply --paper-dialog-scrollable;
      }

      .fit {
        @apply --layout-fit;
      }
    </style>

    <div id="scrollable" class="scrollable" on-scroll="updateScrollState">
      <slot></slot>
    </div>
`,is:"paper-dialog-scrollable",properties:{dialogElement:{type:Object}},get scrollTarget(){return this.$.scrollable},ready:function(){this._ensureTarget(),this.classList.add("no-padding")},attached:function(){this._ensureTarget(),requestAnimationFrame(this.updateScrollState.bind(this))},updateScrollState:function(){this.toggleClass("is-scrolled",this.scrollTarget.scrollTop>0),this.toggleClass("can-scroll",this.scrollTarget.offsetHeight<this.scrollTarget.scrollHeight),this.toggleClass("scrolled-to-bottom",this.scrollTarget.scrollTop+this.scrollTarget.offsetHeight>=this.scrollTarget.scrollHeight)},_ensureTarget:function(){this.dialogElement=this.dialogElement||this.parentElement,this.dialogElement&&this.dialogElement.behaviors&&this.dialogElement.behaviors.indexOf(Sa)>=0?(this.dialogElement.sizingTarget=this.scrollTarget,this.scrollTarget.classList.remove("fit")):this.dialogElement&&this.scrollTarget.classList.add("fit")}});const Ea=xr({_template:Ot`
    <style>
      :host {
        display: inline-block;
        position: fixed;
        clip: rect(0px,0px,0px,0px);
      }
    </style>
    <div aria-live$="[[mode]]">[[_text]]</div>
`,is:"iron-a11y-announcer",properties:{mode:{type:String,value:"polite"},timeout:{type:Number,value:150},_text:{type:String,value:""}},created:function(){Ea.instance||(Ea.instance=this),document.addEventListener("iron-announce",this._onIronAnnounce.bind(this))},announce:function(e){this._text="",this.async((function(){this._text=e}),this.timeout)},_onIronAnnounce:function(e){e.detail&&e.detail.text&&this.announce(e.detail.text)}});Ea.instance=null,Ea.requestAvailability=function(){Ea.instance||(Ea.instance=document.createElement("iron-a11y-announcer")),document.body?document.body.appendChild(Ea.instance):document.addEventListener("load",(function(){document.body.appendChild(Ea.instance)}))},xr({_template:Ot`
    <style>
      :host {
        display: inline-block;
      }
    </style>
    <slot id="content"></slot>
`,is:"iron-input",behaviors:[qo],properties:{bindValue:{type:String,value:""},value:{type:String,computed:"_computeValue(bindValue)"},allowedPattern:{type:String},autoValidate:{type:Boolean,value:!1},_inputElement:Object},observers:["_bindValueChanged(bindValue, _inputElement)"],listeners:{input:"_onInput",keypress:"_onKeypress"},created:function(){Ea.requestAvailability(),this._previousValidInput="",this._patternAlreadyChecked=!1},attached:function(){this._observer=rr(this).observeNodes(function(e){this._initSlottedInput()}.bind(this))},detached:function(){this._observer&&(rr(this).unobserveNodes(this._observer),this._observer=null)},get inputElement(){return this._inputElement},_initSlottedInput:function(){this._inputElement=this.getEffectiveChildren()[0],this.inputElement&&this.inputElement.value&&(this.bindValue=this.inputElement.value),this.fire("iron-input-ready")},get _patternRegExp(){var e;return this.allowedPattern?e=new RegExp(this.allowedPattern):"number"===this.inputElement.type&&(e=/[0-9.,e-]/),e},_bindValueChanged:function(e,t){t&&(void 0===e?t.value=null:e!==t.value&&(this.inputElement.value=e),this.autoValidate&&this.validate(),this.fire("bind-value-changed",{value:e}))},_onInput:function(){this.allowedPattern&&!this._patternAlreadyChecked&&(this._checkPatternValidity()||(this._announceInvalidCharacter("Invalid string of characters not entered."),this.inputElement.value=this._previousValidInput)),this.bindValue=this._previousValidInput=this.inputElement.value,this._patternAlreadyChecked=!1},_isPrintable:function(e){var t=8==e.keyCode||9==e.keyCode||13==e.keyCode||27==e.keyCode,n=19==e.keyCode||20==e.keyCode||45==e.keyCode||46==e.keyCode||144==e.keyCode||145==e.keyCode||e.keyCode>32&&e.keyCode<41||e.keyCode>111&&e.keyCode<124;return!(t||0==e.charCode&&n)},_onKeypress:function(e){if(this.allowedPattern||"number"===this.inputElement.type){var t=this._patternRegExp;if(t&&!(e.metaKey||e.ctrlKey||e.altKey)){this._patternAlreadyChecked=!0;var n=String.fromCharCode(e.charCode);this._isPrintable(e)&&!t.test(n)&&(e.preventDefault(),this._announceInvalidCharacter("Invalid character "+n+" not entered."))}}},_checkPatternValidity:function(){var e=this._patternRegExp;if(!e)return!0;for(var t=0;t<this.inputElement.value.length;t++)if(!e.test(this.inputElement.value[t]))return!1;return!0},validate:function(){if(!this.inputElement)return this.invalid=!1,!0;var e=this.inputElement.checkValidity();return e&&(this.required&&""===this.bindValue?e=!1:this.hasValidator()&&(e=qo.validate.call(this,this.bindValue))),this.invalid=!e,this.fire("iron-input-validate"),e},_announceInvalidCharacter:function(e){this.fire("iron-announce",{text:e})},_computeValue:function(e){return e}});const Ca={attached:function(){this.fire("addon-attached")},update:function(e){}};xr({_template:Ot`
    <style>
      :host {
        display: inline-block;
        float: right;

        @apply --paper-font-caption;
        @apply --paper-input-char-counter;
      }

      :host([hidden]) {
        display: none !important;
      }

      :host(:dir(rtl)) {
        float: left;
      }
    </style>

    <span>[[_charCounterStr]]</span>
`,is:"paper-input-char-counter",behaviors:[Ca],properties:{_charCounterStr:{type:String,value:"0"}},update:function(e){if(e.inputElement){e.value=e.value||"";var t=e.value.toString().length.toString();e.inputElement.hasAttribute("maxlength")&&(t+="/"+e.inputElement.getAttribute("maxlength")),this._charCounterStr=t}}});const za=Ot`
<custom-style>
  <style is="custom-style">
    html {
      --paper-input-container-shared-input-style: {
        position: relative; /* to make a stacking context */
        outline: none;
        box-shadow: none;
        padding: 0;
        margin: 0;
        width: 100%;
        max-width: 100%;
        background: transparent;
        border: none;
        color: var(--paper-input-container-input-color, var(--primary-text-color));
        -webkit-appearance: none;
        text-align: inherit;
        vertical-align: var(--paper-input-container-input-align, bottom);

        @apply --paper-font-subhead;
      };
    }
  </style>
</custom-style>
`;za.setAttribute("style","display: none;"),document.head.appendChild(za.content),xr({_template:Ot`
    <style>
      :host {
        display: block;
        padding: 8px 0;
        @apply --paper-input-container;
      }

      :host([inline]) {
        display: inline-block;
      }

      :host([disabled]) {
        pointer-events: none;
        opacity: 0.33;

        @apply --paper-input-container-disabled;
      }

      :host([hidden]) {
        display: none !important;
      }

      [hidden] {
        display: none !important;
      }

      .floated-label-placeholder {
        @apply --paper-font-caption;
      }

      .underline {
        height: 2px;
        position: relative;
      }

      .focused-line {
        @apply --layout-fit;
        border-bottom: 2px solid var(--paper-input-container-focus-color, var(--primary-color));

        -webkit-transform-origin: center center;
        transform-origin: center center;
        -webkit-transform: scale3d(0,1,1);
        transform: scale3d(0,1,1);

        @apply --paper-input-container-underline-focus;
      }

      .underline.is-highlighted .focused-line {
        -webkit-transform: none;
        transform: none;
        -webkit-transition: -webkit-transform 0.25s;
        transition: transform 0.25s;

        @apply --paper-transition-easing;
      }

      .underline.is-invalid .focused-line {
        border-color: var(--paper-input-container-invalid-color, var(--error-color));
        -webkit-transform: none;
        transform: none;
        -webkit-transition: -webkit-transform 0.25s;
        transition: transform 0.25s;

        @apply --paper-transition-easing;
      }

      .unfocused-line {
        @apply --layout-fit;
        border-bottom: 1px solid var(--paper-input-container-color, var(--secondary-text-color));
        @apply --paper-input-container-underline;
      }

      :host([disabled]) .unfocused-line {
        border-bottom: 1px dashed;
        border-color: var(--paper-input-container-color, var(--secondary-text-color));
        @apply --paper-input-container-underline-disabled;
      }

      .input-wrapper {
        @apply --layout-horizontal;
        @apply --layout-center;
        position: relative;
      }

      .input-content {
        @apply --layout-flex-auto;
        @apply --layout-relative;
        max-width: 100%;
      }

      .input-content ::slotted(label),
      .input-content ::slotted(.paper-input-label) {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        font: inherit;
        color: var(--paper-input-container-color, var(--secondary-text-color));
        -webkit-transition: -webkit-transform 0.25s, width 0.25s;
        transition: transform 0.25s, width 0.25s;
        -webkit-transform-origin: left top;
        transform-origin: left top;
        /* Fix for safari not focusing 0-height date/time inputs with -webkit-apperance: none; */
        min-height: 1px;

        @apply --paper-font-common-nowrap;
        @apply --paper-font-subhead;
        @apply --paper-input-container-label;
        @apply --paper-transition-easing;
      }


      .input-content ::slotted(label):before,
      .input-content ::slotted(.paper-input-label):before {
        @apply --paper-input-container-label-before;
      }

      .input-content ::slotted(label):after,
      .input-content ::slotted(.paper-input-label):after {
        @apply --paper-input-container-label-after;
      }

      .input-content.label-is-floating ::slotted(label),
      .input-content.label-is-floating ::slotted(.paper-input-label) {
        -webkit-transform: translateY(-75%) scale(0.75);
        transform: translateY(-75%) scale(0.75);

        /* Since we scale to 75/100 of the size, we actually have 100/75 of the
        original space now available */
        width: 133%;

        @apply --paper-input-container-label-floating;
      }

      :host(:dir(rtl)) .input-content.label-is-floating ::slotted(label),
      :host(:dir(rtl)) .input-content.label-is-floating ::slotted(.paper-input-label) {
        right: 0;
        left: auto;
        -webkit-transform-origin: right top;
        transform-origin: right top;
      }

      .input-content.label-is-highlighted ::slotted(label),
      .input-content.label-is-highlighted ::slotted(.paper-input-label) {
        color: var(--paper-input-container-focus-color, var(--primary-color));

        @apply --paper-input-container-label-focus;
      }

      .input-content.is-invalid ::slotted(label),
      .input-content.is-invalid ::slotted(.paper-input-label) {
        color: var(--paper-input-container-invalid-color, var(--error-color));
      }

      .input-content.label-is-hidden ::slotted(label),
      .input-content.label-is-hidden ::slotted(.paper-input-label) {
        visibility: hidden;
      }

      .input-content ::slotted(input),
      .input-content ::slotted(iron-input),
      .input-content ::slotted(textarea),
      .input-content ::slotted(iron-autogrow-textarea),
      .input-content ::slotted(.paper-input-input) {
        @apply --paper-input-container-shared-input-style;
        /* The apply shim doesn't apply the nested color custom property,
          so we have to re-apply it here. */
        color: var(--paper-input-container-input-color, var(--primary-text-color));
        @apply --paper-input-container-input;
      }

      .input-content ::slotted(input)::-webkit-outer-spin-button,
      .input-content ::slotted(input)::-webkit-inner-spin-button {
        @apply --paper-input-container-input-webkit-spinner;
      }

      .input-content.focused ::slotted(input),
      .input-content.focused ::slotted(iron-input),
      .input-content.focused ::slotted(textarea),
      .input-content.focused ::slotted(iron-autogrow-textarea),
      .input-content.focused ::slotted(.paper-input-input) {
        @apply --paper-input-container-input-focus;
      }

      .input-content.is-invalid ::slotted(input),
      .input-content.is-invalid ::slotted(iron-input),
      .input-content.is-invalid ::slotted(textarea),
      .input-content.is-invalid ::slotted(iron-autogrow-textarea),
      .input-content.is-invalid ::slotted(.paper-input-input) {
        @apply --paper-input-container-input-invalid;
      }

      .prefix ::slotted(*) {
        display: inline-block;
        @apply --paper-font-subhead;
        @apply --layout-flex-none;
        @apply --paper-input-prefix;
      }

      .suffix ::slotted(*) {
        display: inline-block;
        @apply --paper-font-subhead;
        @apply --layout-flex-none;

        @apply --paper-input-suffix;
      }

      /* Firefox sets a min-width on the input, which can cause layout issues */
      .input-content ::slotted(input) {
        min-width: 0;
      }

      .input-content ::slotted(textarea) {
        resize: none;
      }

      .add-on-content {
        position: relative;
      }

      .add-on-content.is-invalid ::slotted(*) {
        color: var(--paper-input-container-invalid-color, var(--error-color));
      }

      .add-on-content.is-highlighted ::slotted(*) {
        color: var(--paper-input-container-focus-color, var(--primary-color));
      }
    </style>

    <div class="floated-label-placeholder" aria-hidden="true" hidden="[[noLabelFloat]]">&nbsp;</div>

    <div class="input-wrapper">
      <span class="prefix"><slot name="prefix"></slot></span>

      <div class$="[[_computeInputContentClass(noLabelFloat,alwaysFloatLabel,focused,invalid,_inputHasContent)]]" id="labelAndInputContainer">
        <slot name="label"></slot>
        <slot name="input"></slot>
      </div>

      <span class="suffix"><slot name="suffix"></slot></span>
    </div>

    <div class$="[[_computeUnderlineClass(focused,invalid)]]">
      <div class="unfocused-line"></div>
      <div class="focused-line"></div>
    </div>

    <div class$="[[_computeAddOnContentClass(focused,invalid)]]">
      <slot name="add-on"></slot>
    </div>
`,is:"paper-input-container",properties:{noLabelFloat:{type:Boolean,value:!1},alwaysFloatLabel:{type:Boolean,value:!1},attrForValue:{type:String,value:"bind-value"},autoValidate:{type:Boolean,value:!1},invalid:{observer:"_invalidChanged",type:Boolean,value:!1},focused:{readOnly:!0,type:Boolean,value:!1,notify:!0},_addons:{type:Array},_inputHasContent:{type:Boolean,value:!1},_inputSelector:{type:String,value:"input,iron-input,textarea,.paper-input-input"},_boundOnFocus:{type:Function,value:function(){return this._onFocus.bind(this)}},_boundOnBlur:{type:Function,value:function(){return this._onBlur.bind(this)}},_boundOnInput:{type:Function,value:function(){return this._onInput.bind(this)}},_boundValueChanged:{type:Function,value:function(){return this._onValueChanged.bind(this)}}},listeners:{"addon-attached":"_onAddonAttached","iron-input-validate":"_onIronInputValidate"},get _valueChangedEvent(){return this.attrForValue+"-changed"},get _propertyForValue(){return ge(this.attrForValue)},get _inputElement(){return rr(this).querySelector(this._inputSelector)},get _inputElementValue(){return this._inputElement[this._propertyForValue]||this._inputElement.value},ready:function(){this.__isFirstValueUpdate=!0,this._addons||(this._addons=[]),this.addEventListener("focus",this._boundOnFocus,!0),this.addEventListener("blur",this._boundOnBlur,!0)},attached:function(){this.attrForValue?this._inputElement.addEventListener(this._valueChangedEvent,this._boundValueChanged):this.addEventListener("input",this._onInput),this._inputElementValue&&""!=this._inputElementValue?this._handleValueAndAutoValidate(this._inputElement):this._handleValue(this._inputElement)},_onAddonAttached:function(e){this._addons||(this._addons=[]);var t=e.target;-1===this._addons.indexOf(t)&&(this._addons.push(t),this.isAttached&&this._handleValue(this._inputElement))},_onFocus:function(){this._setFocused(!0)},_onBlur:function(){this._setFocused(!1),this._handleValueAndAutoValidate(this._inputElement)},_onInput:function(e){this._handleValueAndAutoValidate(e.target)},_onValueChanged:function(e){var t=e.target;this.__isFirstValueUpdate&&(this.__isFirstValueUpdate=!1,void 0===t.value||""===t.value)||this._handleValueAndAutoValidate(e.target)},_handleValue:function(e){var t=this._inputElementValue;t||0===t||"number"===e.type&&!e.checkValidity()?this._inputHasContent=!0:this._inputHasContent=!1,this.updateAddons({inputElement:e,value:t,invalid:this.invalid})},_handleValueAndAutoValidate:function(e){var t;this.autoValidate&&e&&(t=e.validate?e.validate(this._inputElementValue):e.checkValidity(),this.invalid=!t),this._handleValue(e)},_onIronInputValidate:function(e){this.invalid=this._inputElement.invalid},_invalidChanged:function(){this._addons&&this.updateAddons({invalid:this.invalid})},updateAddons:function(e){for(var t,n=0;t=this._addons[n];n++)t.update(e)},_computeInputContentClass:function(e,t,n,i,r){var o="input-content";if(e)r&&(o+=" label-is-hidden"),i&&(o+=" is-invalid");else{var a=this.querySelector("label");t||r?(o+=" label-is-floating",this.$.labelAndInputContainer.style.position="static",i?o+=" is-invalid":n&&(o+=" label-is-highlighted")):(a&&(this.$.labelAndInputContainer.style.position="relative"),i&&(o+=" is-invalid"))}return n&&(o+=" focused"),o},_computeUnderlineClass:function(e,t){var n="underline";return t?n+=" is-invalid":e&&(n+=" is-highlighted"),n},_computeAddOnContentClass:function(e,t){var n="add-on-content";return t?n+=" is-invalid":e&&(n+=" is-highlighted"),n}}),xr({_template:Ot`
    <style>
      :host {
        display: inline-block;
        visibility: hidden;

        color: var(--paper-input-container-invalid-color, var(--error-color));

        @apply --paper-font-caption;
        @apply --paper-input-error;
        position: absolute;
        left:0;
        right:0;
      }

      :host([invalid]) {
        visibility: visible;
      }

      #a11yWrapper {
        visibility: hidden;
      }

      :host([invalid]) #a11yWrapper {
        visibility: visible;
      }
    </style>

    <!--
    If the paper-input-error element is directly referenced by an
    \`aria-describedby\` attribute, such as when used as a paper-input add-on,
    then applying \`visibility: hidden;\` to the paper-input-error element itself
    does not hide the error.

    For more information, see:
    https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_description
    -->
    <div id="a11yWrapper">
      <slot></slot>
    </div>
`,is:"paper-input-error",behaviors:[Ca],properties:{invalid:{readOnly:!0,reflectToAttribute:!0,type:Boolean}},update:function(e){this._setInvalid(e.invalid)}});const ka={NextLabelID:1,NextAddonID:1,NextInputID:1},Ma={properties:{label:{type:String},value:{notify:!0,type:String},disabled:{type:Boolean,value:!1},invalid:{type:Boolean,value:!1,notify:!0},allowedPattern:{type:String},type:{type:String},list:{type:String},pattern:{type:String},required:{type:Boolean,value:!1},errorMessage:{type:String},charCounter:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1},alwaysFloatLabel:{type:Boolean,value:!1},autoValidate:{type:Boolean,value:!1},validator:{type:String},autocomplete:{type:String,value:"off"},autofocus:{type:Boolean,observer:"_autofocusChanged"},inputmode:{type:String},minlength:{type:Number},maxlength:{type:Number},min:{type:String},max:{type:String},step:{type:String},name:{type:String},placeholder:{type:String,value:""},readonly:{type:Boolean,value:!1},size:{type:Number},autocapitalize:{type:String,value:"none"},autocorrect:{type:String,value:"off"},autosave:{type:String},results:{type:Number},accept:{type:String},multiple:{type:Boolean},_ariaDescribedBy:{type:String,value:""},_ariaLabelledBy:{type:String,value:""},_inputId:{type:String,value:""}},listeners:{"addon-attached":"_onAddonAttached"},keyBindings:{"shift+tab:keydown":"_onShiftTabDown"},hostAttributes:{tabindex:0},get inputElement(){return this.$||(this.$={}),this.$.input||(this._generateInputId(),this.$.input=this.$$("#"+this._inputId)),this.$.input},get _focusableElement(){return this.inputElement},created:function(){this._typesThatHaveText=["date","datetime","datetime-local","month","time","week","file"]},attached:function(){this._updateAriaLabelledBy(),!Pt&&this.inputElement&&-1!==this._typesThatHaveText.indexOf(this.inputElement.type)&&(this.alwaysFloatLabel=!0)},_appendStringWithSpace:function(e,t){return e?e+" "+t:t},_onAddonAttached:function(e){var t=rr(e).rootTarget;if(t.id)this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribedBy,t.id);else{var n="paper-input-add-on-"+ka.NextAddonID++;t.id=n,this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribedBy,n)}},validate:function(){return this.inputElement.validate()},_focusBlurHandler:function(e){Io._focusBlurHandler.call(this,e),this.focused&&!this._shiftTabPressed&&this._focusableElement&&this._focusableElement.focus()},_onShiftTabDown:function(e){var t=this.getAttribute("tabindex");this._shiftTabPressed=!0,this.setAttribute("tabindex","-1"),this.async((function(){this.setAttribute("tabindex",t),this._shiftTabPressed=!1}),1)},_handleAutoValidate:function(){this.autoValidate&&this.validate()},updateValueAndPreserveCaret:function(e){try{var t=this.inputElement.selectionStart;this.value=e,this.inputElement.selectionStart=t,this.inputElement.selectionEnd=t}catch(t){this.value=e}},_computeAlwaysFloatLabel:function(e,t){return t||e},_updateAriaLabelledBy:function(){var e,t=rr(this.root).querySelector("label");t?(t.id?e=t.id:(e="paper-input-label-"+ka.NextLabelID++,t.id=e),this._ariaLabelledBy=e):this._ariaLabelledBy=""},_generateInputId:function(){this._inputId&&""!==this._inputId||(this._inputId="input-"+ka.NextInputID++)},_onChange:function(e){this.shadowRoot&&this.fire(e.type,{sourceEvent:e},{node:this,bubbles:e.bubbles,cancelable:e.cancelable})},_autofocusChanged:function(){if(this.autofocus&&this._focusableElement){var e=document.activeElement;e instanceof HTMLElement&&e!==document.body&&e!==document.documentElement||this._focusableElement.focus()}}},Aa=[Io,wo,Ma];xr({is:"paper-input",_template:Ot`
    <style>
      :host {
        display: block;
      }

      :host([focused]) {
        outline: none;
      }

      :host([hidden]) {
        display: none !important;
      }

      input {
        /* Firefox sets a min-width on the input, which can cause layout issues */
        min-width: 0;
      }

      /* In 1.x, the <input> is distributed to paper-input-container, which styles it.
      In 2.x the <iron-input> is distributed to paper-input-container, which styles
      it, but in order for this to work correctly, we need to reset some
      of the native input's properties to inherit (from the iron-input) */
      iron-input > input {
        @apply --paper-input-container-shared-input-style;
        font-family: inherit;
        font-weight: inherit;
        font-size: inherit;
        letter-spacing: inherit;
        word-spacing: inherit;
        line-height: inherit;
        text-shadow: inherit;
        color: inherit;
        cursor: inherit;
      }

      input:disabled {
        @apply --paper-input-container-input-disabled;
      }

      input::-webkit-outer-spin-button,
      input::-webkit-inner-spin-button {
        @apply --paper-input-container-input-webkit-spinner;
      }

      input::-webkit-clear-button {
        @apply --paper-input-container-input-webkit-clear;
      }

      input::-webkit-calendar-picker-indicator {
        @apply --paper-input-container-input-webkit-calendar-picker-indicator;
      }

      input::-webkit-input-placeholder {
        color: var(--paper-input-container-color, var(--secondary-text-color));
      }

      input:-moz-placeholder {
        color: var(--paper-input-container-color, var(--secondary-text-color));
      }

      input::-moz-placeholder {
        color: var(--paper-input-container-color, var(--secondary-text-color));
      }

      input::-ms-clear {
        @apply --paper-input-container-ms-clear;
      }

      input::-ms-reveal {
        @apply --paper-input-container-ms-reveal;
      }

      input:-ms-input-placeholder {
        color: var(--paper-input-container-color, var(--secondary-text-color));
      }

      label {
        pointer-events: none;
      }
    </style>

    <paper-input-container id="container" no-label-float="[[noLabelFloat]]" always-float-label="[[_computeAlwaysFloatLabel(alwaysFloatLabel,placeholder)]]" auto-validate$="[[autoValidate]]" disabled$="[[disabled]]" invalid="[[invalid]]">

      <slot name="prefix" slot="prefix"></slot>

      <label hidden$="[[!label]]" aria-hidden="true" for$="[[_inputId]]" slot="label">[[label]]</label>

      <!-- Need to bind maxlength so that the paper-input-char-counter works correctly -->
      <iron-input bind-value="{{value}}" slot="input" class="input-element" id$="[[_inputId]]" maxlength$="[[maxlength]]" allowed-pattern="[[allowedPattern]]" invalid="{{invalid}}" validator="[[validator]]">
        <input aria-labelledby$="[[_ariaLabelledBy]]" aria-describedby$="[[_ariaDescribedBy]]" disabled$="[[disabled]]" title$="[[title]]" type$="[[type]]" pattern$="[[pattern]]" required$="[[required]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" inputmode$="[[inputmode]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]" min$="[[min]]" max$="[[max]]" step$="[[step]]" name$="[[name]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" list$="[[list]]" size$="[[size]]" autocapitalize$="[[autocapitalize]]" autocorrect$="[[autocorrect]]" on-change="_onChange" tabindex$="[[tabIndex]]" autosave$="[[autosave]]" results$="[[results]]" accept$="[[accept]]" multiple$="[[multiple]]" role$="[[inputRole]]" aria-haspopup$="[[inputAriaHaspopup]]">
      </iron-input>

      <slot name="suffix" slot="suffix"></slot>

      <template is="dom-if" if="[[errorMessage]]">
        <paper-input-error aria-live="assertive" slot="add-on">[[errorMessage]]</paper-input-error>
      </template>

      <template is="dom-if" if="[[charCounter]]">
        <paper-input-char-counter slot="add-on"></paper-input-char-counter>
      </template>

    </paper-input-container>
  `,behaviors:[Aa,$o],properties:{value:{type:String},inputRole:{type:String,value:void 0},inputAriaHaspopup:{type:String,value:void 0}},get _focusableElement(){return this.inputElement._inputElement},listeners:{"iron-input-ready":"_onIronInputReady"},_onIronInputReady:function(){this.$.nativeInput||(this.$.nativeInput=this.$$("input")),this.inputElement&&-1!==this._typesThatHaveText.indexOf(this.$.nativeInput.type)&&(this.alwaysFloatLabel=!0),this.inputElement.bindValue&&this.$.container._handleValueAndAutoValidate(this.inputElement)}}),xr({_template:Ot`
    <style>
      :host {
        position: fixed;
      }

      #contentWrapper ::slotted(*) {
        overflow: auto;
      }

      #contentWrapper.animating ::slotted(*) {
        overflow: hidden;
        pointer-events: none;
      }
    </style>

    <div id="contentWrapper">
      <slot id="content" name="dropdown-content"></slot>
    </div>
`,is:"iron-dropdown",behaviors:[Io,wo,wa,na],properties:{horizontalAlign:{type:String,value:"left",reflectToAttribute:!0},verticalAlign:{type:String,value:"top",reflectToAttribute:!0},openAnimationConfig:{type:Object},closeAnimationConfig:{type:Object},focusTarget:{type:Object},noAnimations:{type:Boolean,value:!1},allowOutsideScroll:{type:Boolean,value:!1,observer:"_allowOutsideScrollChanged"}},listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},observers:["_updateOverlayPosition(positionTarget, verticalAlign, horizontalAlign, verticalOffset, horizontalOffset)"],get containedElement(){for(var e=rr(this.$.content).getDistributedNodes(),t=0,n=e.length;t<n;t++)if(e[t].nodeType===Node.ELEMENT_NODE)return e[t]},ready:function(){this.scrollAction||(this.scrollAction=this.allowOutsideScroll?"refit":"lock"),this._readied=!0},attached:function(){this.sizingTarget&&this.sizingTarget!==this||(this.sizingTarget=this.containedElement||this)},detached:function(){this.cancelAnimation()},_openedChanged:function(){this.opened&&this.disabled?this.cancel():(this.cancelAnimation(),this._updateAnimationConfig(),ba._openedChanged.apply(this,arguments))},_renderOpened:function(){!this.noAnimations&&this.animationConfig.open?(this.$.contentWrapper.classList.add("animating"),this.playAnimation("open")):ba._renderOpened.apply(this,arguments)},_renderClosed:function(){!this.noAnimations&&this.animationConfig.close?(this.$.contentWrapper.classList.add("animating"),this.playAnimation("close")):ba._renderClosed.apply(this,arguments)},_onNeonAnimationFinish:function(){this.$.contentWrapper.classList.remove("animating"),this.opened?this._finishRenderOpened():this._finishRenderClosed()},_updateAnimationConfig:function(){for(var e=this.containedElement,t=[].concat(this.openAnimationConfig||[]).concat(this.closeAnimationConfig||[]),n=0;n<t.length;n++)t[n].node=e;this.animationConfig={open:this.openAnimationConfig,close:this.closeAnimationConfig}},_updateOverlayPosition:function(){this.isAttached&&this.notifyResize()},_allowOutsideScrollChanged:function(e){this._readied&&(e?this.scrollAction&&"lock"!==this.scrollAction||(this.scrollAction="refit"):this.scrollAction="lock")},_applyFocus:function(){var e=this.focusTarget||this.containedElement;e&&this.opened&&!this.noAutoFocus?e.focus():ba._applyFocus.apply(this,arguments)}});const Ta={properties:{animationTiming:{type:Object,value:function(){return{duration:500,easing:"cubic-bezier(0.4, 0, 0.2, 1)",fill:"both"}}}},isNeonAnimation:!0,created:function(){document.body.animate||console.warn("No web animations detected. This element will not function without a web animations polyfill.")},timingFromConfig:function(e){if(e.timing)for(var t in e.timing)this.animationTiming[t]=e.timing[t];return this.animationTiming},setPrefixedProperty:function(e,t,n){for(var i,r={transform:["webkitTransform"],transformOrigin:["mozTransformOrigin","webkitTransformOrigin"]}[t],o=0;i=r[o];o++)e.style[i]=n;e.style[t]=n},complete:function(e){}};xr({is:"fade-in-animation",behaviors:[Ta],configure:function(e){var t=e.node;return this._effect=new KeyframeEffect(t,[{opacity:"0"},{opacity:"1"}],this.timingFromConfig(e)),this._effect}}),xr({is:"fade-out-animation",behaviors:[Ta],configure:function(e){var t=e.node;return this._effect=new KeyframeEffect(t,[{opacity:"1"},{opacity:"0"}],this.timingFromConfig(e)),this._effect}}),xr({is:"paper-menu-grow-height-animation",_template:null,behaviors:[Ta],configure:function(e){var t=e.node,n=t.getBoundingClientRect().height;return this._effect=new KeyframeEffect(t,[{height:n/2+"px"},{height:n+"px"}],this.timingFromConfig(e)),this._effect}}),xr({is:"paper-menu-grow-width-animation",_template:null,behaviors:[Ta],configure:function(e){var t=e.node,n=t.getBoundingClientRect().width;return this._effect=new KeyframeEffect(t,[{width:n/2+"px"},{width:n+"px"}],this.timingFromConfig(e)),this._effect}}),xr({is:"paper-menu-shrink-width-animation",_template:null,behaviors:[Ta],configure:function(e){var t=e.node,n=t.getBoundingClientRect().width;return this._effect=new KeyframeEffect(t,[{width:n+"px"},{width:n-n/20+"px"}],this.timingFromConfig(e)),this._effect}}),xr({is:"paper-menu-shrink-height-animation",_template:null,behaviors:[Ta],configure:function(e){var t=e.node,n=t.getBoundingClientRect().height;return this.setPrefixedProperty(t,"transformOrigin","0 0"),this._effect=new KeyframeEffect(t,[{height:n+"px",transform:"translateY(0)"},{height:n/2+"px",transform:"translateY(-20px)"}],this.timingFromConfig(e)),this._effect}});var Na={ANIMATION_CUBIC_BEZIER:"cubic-bezier(.3,.95,.5,1)",MAX_ANIMATION_TIME_MS:400};const Ia=xr({_template:Ot`
    <style>
      :host {
        display: inline-block;
        position: relative;
        padding: 8px;
        outline: none;

        @apply --paper-menu-button;
      }

      :host([disabled]) {
        cursor: auto;
        color: var(--disabled-text-color);

        @apply --paper-menu-button-disabled;
      }

      iron-dropdown {
        @apply --paper-menu-button-dropdown;
      }

      .dropdown-content {
        @apply --shadow-elevation-2dp;

        position: relative;
        border-radius: 2px;
        background-color: var(--paper-menu-button-dropdown-background, var(--primary-background-color));

        @apply --paper-menu-button-content;
      }

      :host([vertical-align="top"]) .dropdown-content {
        margin-bottom: 20px;
        margin-top: -10px;
        top: 10px;
      }

      :host([vertical-align="bottom"]) .dropdown-content {
        bottom: 10px;
        margin-bottom: -10px;
        margin-top: 20px;
      }

      #trigger {
        cursor: pointer;
      }
    </style>

    <div id="trigger" on-tap="toggle">
      <slot name="dropdown-trigger"></slot>
    </div>

    <iron-dropdown id="dropdown" opened="{{opened}}" horizontal-align="[[horizontalAlign]]" vertical-align="[[verticalAlign]]" dynamic-align="[[dynamicAlign]]" horizontal-offset="[[horizontalOffset]]" vertical-offset="[[verticalOffset]]" no-overlap="[[noOverlap]]" open-animation-config="[[openAnimationConfig]]" close-animation-config="[[closeAnimationConfig]]" no-animations="[[noAnimations]]" focus-target="[[_dropdownContent]]" allow-outside-scroll="[[allowOutsideScroll]]" restore-focus-on-close="[[restoreFocusOnClose]]" on-iron-overlay-canceled="__onIronOverlayCanceled" expand-sizing-target-for-scrollbars="[[expandSizingTargetForScrollbars]]">
      <div slot="dropdown-content" class="dropdown-content">
        <slot id="content" name="dropdown-content"></slot>
      </div>
    </iron-dropdown>
`,is:"paper-menu-button",behaviors:[wo,Io],properties:{opened:{type:Boolean,value:!1,notify:!0,observer:"_openedChanged"},horizontalAlign:{type:String,value:"left",reflectToAttribute:!0},verticalAlign:{type:String,value:"top",reflectToAttribute:!0},dynamicAlign:{type:Boolean},horizontalOffset:{type:Number,value:0,notify:!0},verticalOffset:{type:Number,value:0,notify:!0},noOverlap:{type:Boolean},noAnimations:{type:Boolean,value:!1},ignoreSelect:{type:Boolean,value:!1},closeOnActivate:{type:Boolean,value:!1},openAnimationConfig:{type:Object,value:function(){return[{name:"fade-in-animation",timing:{delay:100,duration:200}},{name:"paper-menu-grow-width-animation",timing:{delay:100,duration:150,easing:Na.ANIMATION_CUBIC_BEZIER}},{name:"paper-menu-grow-height-animation",timing:{delay:100,duration:275,easing:Na.ANIMATION_CUBIC_BEZIER}}]}},closeAnimationConfig:{type:Object,value:function(){return[{name:"fade-out-animation",timing:{duration:150}},{name:"paper-menu-shrink-width-animation",timing:{delay:100,duration:50,easing:Na.ANIMATION_CUBIC_BEZIER}},{name:"paper-menu-shrink-height-animation",timing:{duration:200,easing:"ease-in"}}]}},allowOutsideScroll:{type:Boolean,value:!1},restoreFocusOnClose:{type:Boolean,value:!0},expandSizingTargetForScrollbars:{type:Boolean,value:!1},_dropdownContent:{type:Object}},hostAttributes:{role:"group","aria-haspopup":"true"},listeners:{"iron-activate":"_onIronActivate","iron-select":"_onIronSelect"},get contentElement(){for(var e=rr(this.$.content).getDistributedNodes(),t=0,n=e.length;t<n;t++)if(e[t].nodeType===Node.ELEMENT_NODE)return e[t]},toggle:function(){this.opened?this.close():this.open()},open:function(){this.disabled||this.$.dropdown.open()},close:function(){this.$.dropdown.close()},_onIronSelect:function(e){this.ignoreSelect||this.close()},_onIronActivate:function(e){this.closeOnActivate&&this.close()},_openedChanged:function(e,t){e?(this._dropdownContent=this.contentElement,this.fire("paper-dropdown-open")):null!=t&&this.fire("paper-dropdown-close")},_disabledChanged:function(e){Io._disabledChanged.apply(this,arguments),e&&this.opened&&this.close()},__onIronOverlayCanceled:function(e){var t=e.detail,n=this.$.trigger;rr(t).path.indexOf(n)>-1&&e.preventDefault()}});Object.keys(Na).forEach((function(e){Ia[e]=Na[e]}));const Oa=document.createElement("template");Oa.setAttribute("style","display: none;"),Oa.innerHTML='<iron-iconset-svg name="paper-dropdown-menu" size="24">\n<svg><defs>\n<g id="arrow-drop-down"><path d="M7 10l5 5 5-5z"></path></g>\n</defs></svg>\n</iron-iconset-svg>',document.head.appendChild(Oa.content);const La=document.createElement("template");La.setAttribute("style","display: none;"),La.innerHTML='<dom-module id="paper-dropdown-menu-shared-styles">\n  <template>\n    <style>\n      :host {\n        display: inline-block;\n        position: relative;\n        text-align: left;\n\n        /* NOTE(cdata): Both values are needed, since some phones require the\n         * value to be `transparent`.\n         */\n        -webkit-tap-highlight-color: rgba(0,0,0,0);\n        -webkit-tap-highlight-color: transparent;\n\n        --paper-input-container-input: {\n          overflow: hidden;\n          white-space: nowrap;\n          text-overflow: ellipsis;\n          max-width: 100%;\n          box-sizing: border-box;\n          cursor: pointer;\n        };\n\n        @apply --paper-dropdown-menu;\n      }\n\n      /* paper-dropdown-menu and paper-dropdown-menu-light both delegate focus\n       * to other internal elements which manage focus styling. */\n      :host(:focus) {\n        outline: none;\n      }\n\n      :host(:dir(rtl)) {\n        text-align: right;\n\n        @apply(--paper-dropdown-menu);\n      }\n\n      :host([disabled]) {\n        @apply --paper-dropdown-menu-disabled;\n      }\n\n      :host([noink]) paper-ripple {\n        display: none;\n      }\n\n      :host([no-label-float]) paper-ripple {\n        top: 8px;\n      }\n\n      paper-ripple {\n        top: 12px;\n        left: 0px;\n        bottom: 8px;\n        right: 0px;\n\n        @apply --paper-dropdown-menu-ripple;\n      }\n\n      paper-menu-button {\n        display: block;\n        padding: 0;\n\n        @apply --paper-dropdown-menu-button;\n      }\n\n      paper-input {\n        @apply --paper-dropdown-menu-input;\n      }\n\n      iron-icon {\n        color: var(--disabled-text-color);\n\n        @apply --paper-dropdown-menu-icon;\n      }\n    </style>\n  </template>\n</dom-module>',document.head.appendChild(La.content);const Pa=pr(HTMLElement);xr({_template:Ot`
    <style include="paper-dropdown-menu-shared-styles"></style>

    <paper-menu-button id="menuButton" vertical-align="[[verticalAlign]]" horizontal-align="[[horizontalAlign]]" dynamic-align="[[dynamicAlign]]" vertical-offset="[[_computeMenuVerticalOffset(noLabelFloat, verticalOffset)]]" disabled="[[disabled]]" no-animations="[[noAnimations]]" on-iron-select="_onIronSelect" on-iron-deselect="_onIronDeselect" opened="{{opened}}" close-on-activate allow-outside-scroll="[[allowOutsideScroll]]" restore-focus-on-close="[[restoreFocusOnClose]]" expand-sizing-target-for-scrollbars="[[expandSizingTargetForScrollbars]]">
      <!-- support hybrid mode: user might be using paper-menu-button 1.x which distributes via <content> -->
      <div class="dropdown-trigger" slot="dropdown-trigger">
        <paper-ripple></paper-ripple>
        <!-- paper-input has type="text" for a11y, do not remove -->
        <paper-input id="input" type="text" invalid="[[invalid]]" readonly disabled="[[disabled]]" value="[[value]]" placeholder="[[placeholder]]" error-message="[[errorMessage]]" always-float-label="[[alwaysFloatLabel]]" no-label-float="[[noLabelFloat]]" label="[[label]]" input-role="button" input-aria-haspopup="listbox" autocomplete="off">
          <!-- support hybrid mode: user might be using paper-input 1.x which distributes via <content> -->
          <iron-icon icon="paper-dropdown-menu:arrow-drop-down" suffix slot="suffix"></iron-icon>
        </paper-input>
      </div>
      <slot id="content" name="dropdown-content" slot="dropdown-content"></slot>
    </paper-menu-button>
`,is:"paper-dropdown-menu",behaviors:[Lo,Io,$o,qo],properties:{selectedItemLabel:{type:String,notify:!0,readOnly:!0},selectedItem:{type:Object,notify:!0,readOnly:!0},value:{type:String,notify:!0},label:{type:String},placeholder:{type:String},errorMessage:{type:String},opened:{type:Boolean,notify:!0,value:!1,observer:"_openedChanged"},allowOutsideScroll:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1,reflectToAttribute:!0},alwaysFloatLabel:{type:Boolean,value:!1},noAnimations:{type:Boolean,value:!1},horizontalAlign:{type:String,value:"right"},verticalAlign:{type:String,value:"top"},verticalOffset:Number,dynamicAlign:{type:Boolean},restoreFocusOnClose:{type:Boolean,value:!0},expandSizingTargetForScrollbars:{type:Boolean,value:!1}},listeners:{tap:"_onTap"},keyBindings:{"up down":"open",esc:"close"},observers:["_selectedItemChanged(selectedItem)"],_attachDom(e){const t=te(this);return t.attachShadow({mode:"open",delegatesFocus:!0,shadyUpgradeFragment:e}),t.shadowRoot.appendChild(e),Pa.prototype._attachDom.call(this,e)},focus(){this.$.input._focusableElement.focus()},attached:function(){var e=this.contentElement;e&&e.selectedItem&&this._setSelectedItem(e.selectedItem)},get contentElement(){for(var e=rr(this.$.content).getDistributedNodes(),t=0,n=e.length;t<n;t++)if(e[t].nodeType===Node.ELEMENT_NODE)return e[t]},open:function(){this.$.menuButton.open()},close:function(){this.$.menuButton.close()},_onIronSelect:function(e){this._setSelectedItem(e.detail.item)},_onIronDeselect:function(e){this._setSelectedItem(null)},_onTap:function(e){Ci(e)===this&&this.open()},_selectedItemChanged:function(e){var t;t=e?e.label||e.getAttribute("label")||e.textContent.trim():"",this.value=t,this._setSelectedItemLabel(t)},_computeMenuVerticalOffset:function(e,t){return t||(e?-4:8)},_getValidity:function(e){return this.disabled||!this.required||this.required&&!!this.value},_openedChanged:function(){var e=this.opened?"true":"false",t=this.contentElement;t&&t.setAttribute("aria-expanded",e)}});var Ha={outerScroll:{scroll:!0},shadowMode:{standard:2,waterfall:1,"waterfall-tall":1},tallMode:{"waterfall-tall":!0}};xr({_template:Ot`
    <style>
      :host {
        @apply --layout-vertical;
        position: relative;
        height: 100%;
        @apply --paper-header-panel;
      }

      #mainContainer {
        @apply --layout-flex;
        position: relative;
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
      }

      #mainPanel {
        @apply --layout-vertical;
        @apply --layout-flex;
        position: relative;
        min-height: 0;
        @apply --paper-header-panel-body;
      }

      #mainContainer {
        @apply --paper-header-panel-container;
      }

      /*
       * mode: scroll
       */
      :host([mode=scroll]) #mainContainer {
        @apply --paper-header-panel-scroll-container;
        overflow: visible;
      }

      :host([mode=scroll]) {
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
      }

      /*
       * mode: cover
       */
      :host([mode=cover]) #mainContainer {
        @apply --paper-header-panel-cover-container;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
      }

      :host([mode=cover]) #mainPanel {
        position: static;
      }

      /*
       * mode: standard
       */
      :host([mode=standard]) #mainContainer {
        @apply --paper-header-panel-standard-container;
      }

      /*
       * mode: seamed
       */
      :host([mode=seamed]) #mainContainer {
        @apply --paper-header-panel-seamed-container;
      }


      /*
       * mode: waterfall
       */
      :host([mode=waterfall]) #mainContainer {
        @apply --paper-header-panel-waterfall-container;
      }

      /*
       * mode: waterfall-tall
       */
      :host([mode=waterfall-tall]) #mainContainer {
        @apply --paper-header-panel-waterfall-tall-container;
      }

      #dropShadow {
        transition: opacity 0.5s;
        height: 6px;
        box-shadow: inset 0px 5px 6px -3px rgba(0, 0, 0, 0.4);
        @apply --paper-header-panel-shadow;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        opacity: 0;
        pointer-events: none;
      }

      #dropShadow.has-shadow {
        opacity: 1;
      }

      #mainContainer > ::slotted(.fit) {
        @apply --layout-fit;
      }

    </style>

    <slot id="headerSlot" name="header"></slot>

    <div id="mainPanel">
      <div id="mainContainer" class\$="[[_computeMainContainerClass(mode)]]">
        <slot></slot>
      </div>
      <div id="dropShadow"></div>
    </div>
`,is:"paper-header-panel",properties:{mode:{type:String,value:"standard",observer:"_modeChanged",reflectToAttribute:!0},shadow:{type:Boolean,value:!1},tallClass:{type:String,value:"tall"},atTop:{type:Boolean,value:!0,notify:!0,readOnly:!0,reflectToAttribute:!0}},observers:["_computeDropShadowHidden(atTop, mode, shadow)"],attached:function(){this._addListener(),this._keepScrollingState()},detached:function(){this._removeListener()},ready:function(){this.scrollHandler=this._scroll.bind(this),console.warn(this.is,"is deprecated. Please use app-layout instead!")},get header(){return rr(this.$.headerSlot).getDistributedNodes()[0]},get scroller(){return this._getScrollerForMode(this.mode)},get visibleShadow(){return this.$.dropShadow.classList.contains("has-shadow")},_computeDropShadowHidden:function(e,t,n){var i=Ha.shadowMode[t];this.shadow||2===i?this.toggleClass("has-shadow",!0,this.$.dropShadow):1!==i||e?this.toggleClass("has-shadow",!1,this.$.dropShadow):this.toggleClass("has-shadow",!0,this.$.dropShadow)},_computeMainContainerClass:function(e){var t={};return t.flex="cover"!==e,Object.keys(t).filter((function(e){return t[e]})).join(" ")},_addListener:function(){this.scroller.addEventListener("scroll",this.scrollHandler)},_removeListener:function(){this.scroller.removeEventListener("scroll",this.scrollHandler)},_modeChanged:function(e,t){var n=Ha,i=this.header;i&&(n.tallMode[t]&&!n.tallMode[e]?(i.classList.remove(this.tallClass),this.async((function(){i.classList.remove("animate")}),200)):this.toggleClass("animate",n.tallMode[e],i)),this._keepScrollingState()},_keepScrollingState:function(){var e=this.scroller,t=this.header;this._setAtTop(0===e.scrollTop),t&&this.tallClass&&Ha.tallMode[this.mode]&&this.toggleClass(this.tallClass,this.atTop||t.classList.contains(this.tallClass)&&e.scrollHeight<this.offsetHeight,t)},_scroll:function(){this._keepScrollingState(),this.fire("content-scroll",{target:this.scroller},{bubbles:!1})},_getScrollerForMode:function(e){return Ha.outerScroll[e]?this:this.$.mainContainer}}),xr({is:"paper-icon-button",_template:Ot`
    <style>
      :host {
        display: inline-block;
        position: relative;
        padding: 8px;
        outline: none;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        cursor: pointer;
        z-index: 0;
        line-height: 1;

        width: 40px;
        height: 40px;

        /*
          NOTE: Both values are needed, since some phones require the value to
          be \`transparent\`.
        */
        -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
        -webkit-tap-highlight-color: transparent;

        /* Because of polymer/2558, this style has lower specificity than * */
        box-sizing: border-box !important;

        @apply --paper-icon-button;
      }

      :host #ink {
        color: var(--paper-icon-button-ink-color, var(--primary-text-color));
        opacity: 0.6;
      }

      :host([disabled]) {
        color: var(--paper-icon-button-disabled-text, var(--disabled-text-color));
        pointer-events: none;
        cursor: auto;

        @apply --paper-icon-button-disabled;
      }

      :host([hidden]) {
        display: none !important;
      }

      :host(:hover) {
        @apply --paper-icon-button-hover;
      }

      iron-icon {
        --iron-icon-width: 100%;
        --iron-icon-height: 100%;
      }
    </style>

    <iron-icon id="icon" src="[[src]]" icon="[[icon]]"
               alt$="[[alt]]"></iron-icon>
  `,hostAttributes:{role:"button",tabindex:"0"},behaviors:[Ko],registered:function(){this._template.setAttribute("strip-whitespace","")},properties:{src:{type:String},icon:{type:String},alt:{type:String,observer:"_altChanged"}},_altChanged:function(e,t){var n=this.getAttribute("aria-label");n&&t!=n||this.setAttribute("aria-label",e)}}),xr({_template:Ot`
    <style>
      :host {
        display: inline-block;
        position: relative;
        width: 400px;
        border: 1px solid;
        padding: 2px;
        -moz-appearance: textarea;
        -webkit-appearance: textarea;
        overflow: hidden;
      }

      .mirror-text {
        visibility: hidden;
        word-wrap: break-word;
        @apply --iron-autogrow-textarea;
      }

      .fit {
        @apply --layout-fit;
      }

      textarea {
        position: relative;
        outline: none;
        border: none;
        resize: none;
        background: inherit;
        color: inherit;
        /* see comments in template */
        width: 100%;
        height: 100%;
        font-size: inherit;
        font-family: inherit;
        line-height: inherit;
        text-align: inherit;
        @apply --iron-autogrow-textarea;
      }

      textarea::-webkit-input-placeholder {
        @apply --iron-autogrow-textarea-placeholder;
      }

      textarea:-moz-placeholder {
        @apply --iron-autogrow-textarea-placeholder;
      }

      textarea::-moz-placeholder {
        @apply --iron-autogrow-textarea-placeholder;
      }

      textarea:-ms-input-placeholder {
        @apply --iron-autogrow-textarea-placeholder;
      }
    </style>

    <!-- the mirror sizes the input/textarea so it grows with typing -->
    <!-- use &#160; instead &nbsp; of to allow this element to be used in XHTML -->
    <div id="mirror" class="mirror-text" aria-hidden="true">&nbsp;</div>

    <!-- size the input/textarea with a div, because the textarea has intrinsic size in ff -->
    <div class="textarea-container fit">
      <textarea id="textarea" name$="[[name]]" aria-label$="[[label]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" autocapitalize$="[[autocapitalize]]" inputmode$="[[inputmode]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" required$="[[required]]" disabled$="[[disabled]]" rows$="[[rows]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]"></textarea>
    </div>
`,is:"iron-autogrow-textarea",behaviors:[qo,Io],properties:{value:{observer:"_valueChanged",type:String,notify:!0},bindValue:{observer:"_bindValueChanged",type:String,notify:!0},rows:{type:Number,value:1,observer:"_updateCached"},maxRows:{type:Number,value:0,observer:"_updateCached"},autocomplete:{type:String,value:"off"},autofocus:{type:Boolean,value:!1},autocapitalize:{type:String,value:"none"},inputmode:{type:String},placeholder:{type:String},readonly:{type:String},required:{type:Boolean},minlength:{type:Number},maxlength:{type:Number},label:{type:String}},listeners:{input:"_onInput"},get textarea(){return this.$.textarea},get selectionStart(){return this.$.textarea.selectionStart},get selectionEnd(){return this.$.textarea.selectionEnd},set selectionStart(e){this.$.textarea.selectionStart=e},set selectionEnd(e){this.$.textarea.selectionEnd=e},attached:function(){navigator.userAgent.match(/iP(?:[oa]d|hone)/)&&!navigator.userAgent.match(/OS 1[3456789]/)&&(this.$.textarea.style.marginLeft="-3px")},validate:function(){var e=this.$.textarea.validity.valid;return e&&(this.required&&""===this.value?e=!1:this.hasValidator()&&(e=qo.validate.call(this,this.value))),this.invalid=!e,this.fire("iron-input-validate"),e},_bindValueChanged:function(e){this.value=e},_valueChanged:function(e){var t=this.textarea;t&&(t.value!==e&&(t.value=e||0===e?e:""),this.bindValue=e,this.$.mirror.innerHTML=this._valueForMirror(),this.fire("bind-value-changed",{value:this.bindValue}))},_onInput:function(e){var t=rr(e).path;this.value=t?t[0].value:e.target.value},_constrain:function(e){var t;for(e=e||[""],t=this.maxRows>0&&e.length>this.maxRows?e.slice(0,this.maxRows):e.slice(0);this.rows>0&&t.length<this.rows;)t.push("");return t.join("<br/>")+"&#160;"},_valueForMirror:function(){var e=this.textarea;if(e)return this.tokens=e&&e.value?e.value.replace(/&/gm,"&amp;").replace(/"/gm,"&quot;").replace(/'/gm,"&#39;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").split("\n"):[""],this._constrain(this.tokens)},_updateCached:function(){this.$.mirror.innerHTML=this._constrain(this.tokens)}}),xr({_template:Ot`
    <style>
      :host {
        display: block;
      }

      :host([hidden]) {
        display: none !important;
      }

      label {
        pointer-events: none;
      }
    </style>

    <paper-input-container no-label-float$="[[noLabelFloat]]" always-float-label="[[_computeAlwaysFloatLabel(alwaysFloatLabel,placeholder)]]" auto-validate$="[[autoValidate]]" disabled$="[[disabled]]" invalid="[[invalid]]">

      <label hidden$="[[!label]]" aria-hidden="true" for$="[[_inputId]]" slot="label">[[label]]</label>

      <iron-autogrow-textarea class="paper-input-input" slot="input" id$="[[_inputId]]" aria-labelledby$="[[_ariaLabelledBy]]" aria-describedby$="[[_ariaDescribedBy]]" bind-value="{{value}}" invalid="{{invalid}}" validator$="[[validator]]" disabled$="[[disabled]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" inputmode$="[[inputmode]]" name$="[[name]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" required$="[[required]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]" autocapitalize$="[[autocapitalize]]" rows$="[[rows]]" max-rows$="[[maxRows]]" on-change="_onChange"></iron-autogrow-textarea>

      <template is="dom-if" if="[[errorMessage]]">
        <paper-input-error aria-live="assertive" slot="add-on">[[errorMessage]]</paper-input-error>
      </template>

      <template is="dom-if" if="[[charCounter]]">
        <paper-input-char-counter slot="add-on"></paper-input-char-counter>
      </template>

    </paper-input-container>
`,is:"paper-textarea",behaviors:[Aa,$o],properties:{_ariaLabelledBy:{observer:"_ariaLabelledByChanged",type:String},_ariaDescribedBy:{observer:"_ariaDescribedByChanged",type:String},value:{type:String},rows:{type:Number,value:1},maxRows:{type:Number,value:0}},get selectionStart(){return this.$.input.textarea.selectionStart},set selectionStart(e){this.$.input.textarea.selectionStart=e},get selectionEnd(){return this.$.input.textarea.selectionEnd},set selectionEnd(e){this.$.input.textarea.selectionEnd=e},_ariaLabelledByChanged:function(e){this._focusableElement.setAttribute("aria-labelledby",e)},_ariaDescribedByChanged:function(e){this._focusableElement.setAttribute("aria-describedby",e)},get _focusableElement(){return this.inputElement.textarea}});const Ra=document.createElement("template");Ra.setAttribute("style","display: none;"),Ra.innerHTML="<dom-module id=\"paper-item-shared-styles\">\n  <template>\n    <style>\n      :host, .paper-item {\n        display: block;\n        position: relative;\n        min-height: var(--paper-item-min-height, 48px);\n        padding: 0px 16px;\n      }\n\n      .paper-item {\n        @apply --paper-font-subhead;\n        border:none;\n        outline: none;\n        background: white;\n        width: 100%;\n        text-align: left;\n      }\n\n      :host([hidden]), .paper-item[hidden] {\n        display: none !important;\n      }\n\n      :host(.iron-selected), .paper-item.iron-selected {\n        font-weight: var(--paper-item-selected-weight, bold);\n\n        @apply --paper-item-selected;\n      }\n\n      :host([disabled]), .paper-item[disabled] {\n        color: var(--paper-item-disabled-color, var(--disabled-text-color));\n\n        @apply --paper-item-disabled;\n      }\n\n      :host(:focus), .paper-item:focus {\n        position: relative;\n        outline: 0;\n\n        @apply --paper-item-focused;\n      }\n\n      :host(:focus):before, .paper-item:focus:before {\n        @apply --layout-fit;\n\n        background: currentColor;\n        content: '';\n        opacity: var(--dark-divider-opacity);\n        pointer-events: none;\n\n        @apply --paper-item-focused-before;\n      }\n    </style>\n  </template>\n</dom-module>",document.head.appendChild(Ra.content);const Va=[Lo,Io,{hostAttributes:{role:"option",tabindex:"0"}}];xr({_template:Ot`
    <style include="paper-item-shared-styles">
      :host {
        @apply --layout-horizontal;
        @apply --layout-center;
        @apply --paper-font-subhead;

        @apply --paper-item;
      }
    </style>
    <slot></slot>
`,is:"paper-item",behaviors:[Va]}),xr({_template:Ot`
    <style>
      :host {
        overflow: hidden; /* needed for text-overflow: ellipsis to work on ff */
        @apply --layout-vertical;
        @apply --layout-center-justified;
        @apply --layout-flex;
      }

      :host([two-line]) {
        min-height: var(--paper-item-body-two-line-min-height, 72px);
      }

      :host([three-line]) {
        min-height: var(--paper-item-body-three-line-min-height, 88px);
      }

      :host > ::slotted(*) {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }

      :host > ::slotted([secondary]) {
        @apply --paper-font-body1;

        color: var(--paper-item-body-secondary-color, var(--secondary-text-color));

        @apply --paper-item-body-secondary;
      }
    </style>

    <slot></slot>
`,is:"paper-item-body"}),xr({_template:Ot`
    <style include="paper-item-shared-styles"></style>
    <style>
      :host {
        @apply --layout-horizontal;
        @apply --layout-center;
        @apply --paper-font-subhead;

        @apply --paper-item;
        @apply --paper-icon-item;
      }

      .content-icon {
        @apply --layout-horizontal;
        @apply --layout-center;

        width: var(--paper-item-icon-width, 56px);
        @apply --paper-item-icon;
      }
    </style>

    <div id="contentIcon" class="content-icon">
      <slot name="item-icon"></slot>
    </div>
    <slot></slot>
`,is:"paper-icon-item",behaviors:[Va]});const Ba={properties:{multi:{type:Boolean,value:!1,observer:"multiChanged"},selectedValues:{type:Array,notify:!0,value:function(){return[]}},selectedItems:{type:Array,readOnly:!0,notify:!0,value:function(){return[]}}},observers:["_updateSelected(selectedValues.splices)"],select:function(e){this.multi?this._toggleSelected(e):this.selected=e},multiChanged:function(e){this._selection.multi=e,this._updateSelected()},get _shouldUpdateSelection(){return null!=this.selected||null!=this.selectedValues&&this.selectedValues.length},_updateAttrForSelected:function(){this.multi?this.selectedItems&&this.selectedItems.length>0&&(this.selectedValues=this.selectedItems.map((function(e){return this._indexToValue(this.indexOf(e))}),this).filter((function(e){return null!=e}),this)):Ao._updateAttrForSelected.apply(this)},_updateSelected:function(){this.multi?this._selectMulti(this.selectedValues):this._selectSelected(this.selected)},_selectMulti:function(e){e=e||[];var t=(this._valuesToItems(e)||[]).filter((function(e){return null!=e}));this._selection.clear(t);for(var n=0;n<t.length;n++)this._selection.setItemSelected(t[n],!0);this.fallbackSelection&&!this._selection.get().length&&this._valueToItem(this.fallbackSelection)&&this.select(this.fallbackSelection)},_selectionChange:function(){var e=this._selection.get();this.multi?(this._setSelectedItems(e),this._setSelectedItem(e.length?e[0]:null)):null!=e?(this._setSelectedItems([e]),this._setSelectedItem(e)):(this._setSelectedItems([]),this._setSelectedItem(null))},_toggleSelected:function(e){var t=this.selectedValues.indexOf(e);t<0?this.push("selectedValues",e):this.splice("selectedValues",t,1)},_valuesToItems:function(e){return null==e?null:e.map((function(e){return this._valueToItem(e)}),this)}},Da={properties:{focusedItem:{observer:"_focusedItemChanged",readOnly:!0,type:Object},attrForItemTitle:{type:String},disabled:{type:Boolean,value:!1,observer:"_disabledChanged"}},_MODIFIER_KEYS:["Alt","AltGraph","CapsLock","Control","Fn","FnLock","Hyper","Meta","NumLock","OS","ScrollLock","Shift","Super","Symbol","SymbolLock"],_SEARCH_RESET_TIMEOUT_MS:1e3,_previousTabIndex:0,hostAttributes:{role:"menu"},observers:["_updateMultiselectable(multi)"],listeners:{focus:"_onFocus",keydown:"_onKeydown","iron-items-changed":"_onIronItemsChanged"},keyBindings:{up:"_onUpKey",down:"_onDownKey",esc:"_onEscKey","shift+tab:keydown":"_onShiftTabDown"},attached:function(){this._resetTabindices()},select:function(e){this._defaultFocusAsync&&(this.cancelAsync(this._defaultFocusAsync),this._defaultFocusAsync=null);var t=this._valueToItem(e);t&&t.hasAttribute("disabled")||(this._setFocusedItem(t),Ba.select.apply(this,arguments))},_resetTabindices:function(){var e=this.multi?this.selectedItems&&this.selectedItems[0]:this.selectedItem;this.items.forEach((function(t){t.setAttribute("tabindex",t===e?"0":"-1"),t.setAttribute("aria-selected",this._selection.isSelected(t))}),this)},_updateMultiselectable:function(e){e?this.setAttribute("aria-multiselectable","true"):this.removeAttribute("aria-multiselectable")},_focusWithKeyboardEvent:function(e){if(-1===this._MODIFIER_KEYS.indexOf(e.key)){this.cancelDebouncer("_clearSearchText");for(var t,n=this._searchText||"",i=(n+=(e.key&&1==e.key.length?e.key:String.fromCharCode(e.keyCode)).toLocaleLowerCase()).length,r=0;t=this.items[r];r++)if(!t.hasAttribute("disabled")){var o=this.attrForItemTitle||"textContent",a=(t[o]||t.getAttribute(o)||"").trim();if(!(a.length<i)&&a.slice(0,i).toLocaleLowerCase()==n){this._setFocusedItem(t);break}}this._searchText=n,this.debounce("_clearSearchText",this._clearSearchText,this._SEARCH_RESET_TIMEOUT_MS)}},_clearSearchText:function(){this._searchText=""},_focusPrevious:function(){for(var e=this.items.length,t=Number(this.indexOf(this.focusedItem)),n=1;n<e+1;n++){var i=this.items[(t-n+e)%e];if(!i.hasAttribute("disabled")){var r=rr(i).getOwnerRoot()||document;if(this._setFocusedItem(i),rr(r).activeElement==i)return}}},_focusNext:function(){for(var e=this.items.length,t=Number(this.indexOf(this.focusedItem)),n=1;n<e+1;n++){var i=this.items[(t+n)%e];if(!i.hasAttribute("disabled")){var r=rr(i).getOwnerRoot()||document;if(this._setFocusedItem(i),rr(r).activeElement==i)return}}},_applySelection:function(e,t){t?e.setAttribute("aria-selected","true"):e.setAttribute("aria-selected","false"),Ao._applySelection.apply(this,arguments)},_focusedItemChanged:function(e,t){t&&t.setAttribute("tabindex","-1"),!e||e.hasAttribute("disabled")||this.disabled||(e.setAttribute("tabindex","0"),e.focus())},_onIronItemsChanged:function(e){e.detail.addedNodes.length&&this._resetTabindices()},_onShiftTabDown:function(e){var t=this.getAttribute("tabindex");Da._shiftTabPressed=!0,this._setFocusedItem(null),this.setAttribute("tabindex","-1"),this.async((function(){this.setAttribute("tabindex",t),Da._shiftTabPressed=!1}),1)},_onFocus:function(e){if(!Da._shiftTabPressed){var t=rr(e).rootTarget;(t===this||void 0===t.tabIndex||this.isLightDescendant(t))&&(this._defaultFocusAsync=this.async((function(){var e=this.multi?this.selectedItems&&this.selectedItems[0]:this.selectedItem;this._setFocusedItem(null),e?this._setFocusedItem(e):this.items[0]&&this._focusNext()})))}},_onUpKey:function(e){this._focusPrevious(),e.detail.keyboardEvent.preventDefault()},_onDownKey:function(e){this._focusNext(),e.detail.keyboardEvent.preventDefault()},_onEscKey:function(e){var t=this.focusedItem;t&&t.blur()},_onKeydown:function(e){this.keyboardEventMatchesKeys(e,"up down esc")||this._focusWithKeyboardEvent(e),e.stopPropagation()},_activateHandler:function(e){Ao._activateHandler.call(this,e),e.stopPropagation()},_disabledChanged:function(e){e?(this._previousTabIndex=this.hasAttribute("tabindex")?this.tabIndex:0,this.removeAttribute("tabindex")):this.hasAttribute("tabindex")||this.setAttribute("tabindex",this._previousTabIndex)},_shiftTabPressed:!1},Fa=[[Ao,Ba],wo,Da];xr({_template:Ot`
    <style>
      :host {
        display: block;
        padding: 8px 0;

        background: var(--paper-listbox-background-color, var(--primary-background-color));
        color: var(--paper-listbox-color, var(--primary-text-color));

        @apply --paper-listbox;
      }
    </style>

    <slot></slot>
`,is:"paper-listbox",behaviors:[Fa],hostAttributes:{role:"listbox"}});const ja=Ot`
<dom-module id="paper-material-shared-styles">
  <template>
    <style>
      :host {
        display: block;
        position: relative;
      }

      :host([elevation="1"]) {
        @apply --shadow-elevation-2dp;
      }

      :host([elevation="2"]) {
        @apply --shadow-elevation-4dp;
      }

      :host([elevation="3"]) {
        @apply --shadow-elevation-6dp;
      }

      :host([elevation="4"]) {
        @apply --shadow-elevation-8dp;
      }

      :host([elevation="5"]) {
        @apply --shadow-elevation-16dp;
      }
    </style>
  </template>
</dom-module>
`;ja.setAttribute("style","display: none;"),document.body.appendChild(ja.content),xr({_template:Ot`
    <style include="paper-material-shared-styles"></style>
    <style>
      :host([animated]) {
        @apply --shadow-transition;
      }
      :host {
        @apply --paper-material;
      }
    </style>

    <slot></slot>
`,is:"paper-material",properties:{elevation:{type:Number,reflectToAttribute:!0,value:1},animated:{type:Boolean,reflectToAttribute:!0,value:!1}}});const Ua={properties:{value:{type:Number,value:0,notify:!0,reflectToAttribute:!0},min:{type:Number,value:0,notify:!0},max:{type:Number,value:100,notify:!0},step:{type:Number,value:1,notify:!0},ratio:{type:Number,value:0,readOnly:!0,notify:!0}},observers:["_update(value, min, max, step)"],_calcRatio:function(e){return(this._clampValue(e)-this.min)/(this.max-this.min)},_clampValue:function(e){return Math.min(this.max,Math.max(this.min,this._calcStep(e)))},_calcStep:function(e){if(e=parseFloat(e),!this.step)return e;var t=Math.round((e-this.min)/this.step);return this.step<1?t/(1/this.step)+this.min:t*this.step+this.min},_validateValue:function(){var e=this._clampValue(this.value);return this.value=this.oldValue=isNaN(e)?this.oldValue:e,this.value!==e},_update:function(){this._validateValue(),this._setRatio(100*this._calcRatio(this.value))}};xr({_template:Ot`
    <style>
      :host {
        display: block;
        width: 200px;
        position: relative;
        overflow: hidden;
      }

      :host([hidden]), [hidden] {
        display: none !important;
      }

      #progressContainer {
        @apply --paper-progress-container;
        position: relative;
      }

      #progressContainer,
      /* the stripe for the indeterminate animation*/
      .indeterminate::after {
        height: var(--paper-progress-height, 4px);
      }

      #primaryProgress,
      #secondaryProgress,
      .indeterminate::after {
        @apply --layout-fit;
      }

      #progressContainer,
      .indeterminate::after {
        background: var(--paper-progress-container-color, var(--google-grey-300));
      }

      :host(.transiting) #primaryProgress,
      :host(.transiting) #secondaryProgress {
        -webkit-transition-property: -webkit-transform;
        transition-property: transform;

        /* Duration */
        -webkit-transition-duration: var(--paper-progress-transition-duration, 0.08s);
        transition-duration: var(--paper-progress-transition-duration, 0.08s);

        /* Timing function */
        -webkit-transition-timing-function: var(--paper-progress-transition-timing-function, ease);
        transition-timing-function: var(--paper-progress-transition-timing-function, ease);

        /* Delay */
        -webkit-transition-delay: var(--paper-progress-transition-delay, 0s);
        transition-delay: var(--paper-progress-transition-delay, 0s);
      }

      #primaryProgress,
      #secondaryProgress {
        @apply --layout-fit;
        -webkit-transform-origin: left center;
        transform-origin: left center;
        -webkit-transform: scaleX(0);
        transform: scaleX(0);
        will-change: transform;
      }

      #primaryProgress {
        background: var(--paper-progress-active-color, var(--google-green-500));
      }

      #secondaryProgress {
        background: var(--paper-progress-secondary-color, var(--google-green-100));
      }

      :host([disabled]) #primaryProgress {
        background: var(--paper-progress-disabled-active-color, var(--google-grey-500));
      }

      :host([disabled]) #secondaryProgress {
        background: var(--paper-progress-disabled-secondary-color, var(--google-grey-300));
      }

      :host(:not([disabled])) #primaryProgress.indeterminate {
        -webkit-transform-origin: right center;
        transform-origin: right center;
        -webkit-animation: indeterminate-bar var(--paper-progress-indeterminate-cycle-duration, 2s) linear infinite;
        animation: indeterminate-bar var(--paper-progress-indeterminate-cycle-duration, 2s) linear infinite;
      }

      :host(:not([disabled])) #primaryProgress.indeterminate::after {
        content: "";
        -webkit-transform-origin: center center;
        transform-origin: center center;

        -webkit-animation: indeterminate-splitter var(--paper-progress-indeterminate-cycle-duration, 2s) linear infinite;
        animation: indeterminate-splitter var(--paper-progress-indeterminate-cycle-duration, 2s) linear infinite;
      }

      @-webkit-keyframes indeterminate-bar {
        0% {
          -webkit-transform: scaleX(1) translateX(-100%);
        }
        50% {
          -webkit-transform: scaleX(1) translateX(0%);
        }
        75% {
          -webkit-transform: scaleX(1) translateX(0%);
          -webkit-animation-timing-function: cubic-bezier(.28,.62,.37,.91);
        }
        100% {
          -webkit-transform: scaleX(0) translateX(0%);
        }
      }

      @-webkit-keyframes indeterminate-splitter {
        0% {
          -webkit-transform: scaleX(.75) translateX(-125%);
        }
        30% {
          -webkit-transform: scaleX(.75) translateX(-125%);
          -webkit-animation-timing-function: cubic-bezier(.42,0,.6,.8);
        }
        90% {
          -webkit-transform: scaleX(.75) translateX(125%);
        }
        100% {
          -webkit-transform: scaleX(.75) translateX(125%);
        }
      }

      @keyframes indeterminate-bar {
        0% {
          transform: scaleX(1) translateX(-100%);
        }
        50% {
          transform: scaleX(1) translateX(0%);
        }
        75% {
          transform: scaleX(1) translateX(0%);
          animation-timing-function: cubic-bezier(.28,.62,.37,.91);
        }
        100% {
          transform: scaleX(0) translateX(0%);
        }
      }

      @keyframes indeterminate-splitter {
        0% {
          transform: scaleX(.75) translateX(-125%);
        }
        30% {
          transform: scaleX(.75) translateX(-125%);
          animation-timing-function: cubic-bezier(.42,0,.6,.8);
        }
        90% {
          transform: scaleX(.75) translateX(125%);
        }
        100% {
          transform: scaleX(.75) translateX(125%);
        }
      }
    </style>

    <div id="progressContainer">
      <div id="secondaryProgress" hidden\$="[[_hideSecondaryProgress(secondaryRatio)]]"></div>
      <div id="primaryProgress"></div>
    </div>
`,is:"paper-progress",behaviors:[Ua],properties:{secondaryProgress:{type:Number,value:0},secondaryRatio:{type:Number,value:0,readOnly:!0},indeterminate:{type:Boolean,value:!1,observer:"_toggleIndeterminate"},disabled:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"_disabledChanged"}},observers:["_progressChanged(secondaryProgress, value, min, max, indeterminate)"],hostAttributes:{role:"progressbar"},_toggleIndeterminate:function(e){this.toggleClass("indeterminate",e,this.$.primaryProgress)},_transformProgress:function(e,t){var n="scaleX("+t/100+")";e.style.transform=e.style.webkitTransform=n},_mainRatioChanged:function(e){this._transformProgress(this.$.primaryProgress,e)},_progressChanged:function(e,t,n,i,r){e=this._clampValue(e),t=this._clampValue(t);var o=100*this._calcRatio(e),a=100*this._calcRatio(t);this._setSecondaryRatio(o),this._transformProgress(this.$.secondaryProgress,o),this._transformProgress(this.$.primaryProgress,a),this.secondaryProgress=e,r?this.removeAttribute("aria-valuenow"):this.setAttribute("aria-valuenow",t),this.setAttribute("aria-valuemin",n),this.setAttribute("aria-valuemax",i)},_disabledChanged:function(e){this.setAttribute("aria-disabled",e?"true":"false")},_hideSecondaryProgress:function(e){return 0===e}});const $a=Ot`
<style>
  :host {
    display: inline-block;
    line-height: 0;
    white-space: nowrap;
    cursor: pointer;
    @apply --paper-font-common-base;
    --calculated-paper-radio-button-size: var(--paper-radio-button-size, 16px);
    /* -1px is a sentinel for the default and is replace in \`attached\`. */
    --calculated-paper-radio-button-ink-size: var(--paper-radio-button-ink-size, -1px);
  }

  :host(:focus) {
    outline: none;
  }

  #radioContainer {
    @apply --layout-inline;
    @apply --layout-center-center;
    position: relative;
    width: var(--calculated-paper-radio-button-size);
    height: var(--calculated-paper-radio-button-size);
    vertical-align: middle;

    @apply --paper-radio-button-radio-container;
  }

  #ink {
    position: absolute;
    top: 50%;
    left: 50%;
    right: auto;
    width: var(--calculated-paper-radio-button-ink-size);
    height: var(--calculated-paper-radio-button-ink-size);
    color: var(--paper-radio-button-unchecked-ink-color, var(--primary-text-color));
    opacity: 0.6;
    pointer-events: none;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
  }

  #ink[checked] {
    color: var(--paper-radio-button-checked-ink-color, var(--primary-color));
  }

  #offRadio, #onRadio {
    position: absolute;
    box-sizing: border-box;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
  }

  #offRadio {
    border: 2px solid var(--paper-radio-button-unchecked-color, var(--primary-text-color));
    background-color: var(--paper-radio-button-unchecked-background-color, transparent);
    transition: border-color 0.28s;
  }

  #onRadio {
    background-color: var(--paper-radio-button-checked-color, var(--primary-color));
    -webkit-transform: scale(0);
    transform: scale(0);
    transition: -webkit-transform ease 0.28s;
    transition: transform ease 0.28s;
    will-change: transform;
  }

  :host([checked]) #offRadio {
    border-color: var(--paper-radio-button-checked-color, var(--primary-color));
  }

  :host([checked]) #onRadio {
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
  }

  #radioLabel {
    line-height: normal;
    position: relative;
    display: inline-block;
    vertical-align: middle;
    margin-left: var(--paper-radio-button-label-spacing, 10px);
    white-space: normal;
    color: var(--paper-radio-button-label-color, var(--primary-text-color));

    @apply --paper-radio-button-label;
  }

  :host([checked]) #radioLabel {
    @apply --paper-radio-button-label-checked;
  }

  #radioLabel:dir(rtl) {
    margin-left: 0;
    margin-right: var(--paper-radio-button-label-spacing, 10px);
  }

  #radioLabel[hidden] {
    display: none;
  }

  /* disabled state */

  :host([disabled]) #offRadio {
    border-color: var(--paper-radio-button-unchecked-color, var(--primary-text-color));
    opacity: 0.5;
  }

  :host([disabled][checked]) #onRadio {
    background-color: var(--paper-radio-button-unchecked-color, var(--primary-text-color));
    opacity: 0.5;
  }

  :host([disabled]) #radioLabel {
    /* slightly darker than the button, so that it's readable */
    opacity: 0.65;
  }
</style>

<div id="radioContainer">
  <div id="offRadio"></div>
  <div id="onRadio"></div>
</div>

<div id="radioLabel"><slot></slot></div>`;$a.setAttribute("strip-whitespace",""),xr({_template:$a,is:"paper-radio-button",behaviors:[Yo],hostAttributes:{role:"radio","aria-checked":!1,tabindex:0},properties:{ariaActiveAttribute:{type:String,value:"aria-checked"}},ready:function(){this._rippleContainer=this.$.radioContainer},attached:function(){Ui(this,(function(){if("-1px"===this.getComputedStyleValue("--calculated-paper-radio-button-ink-size").trim()){var e=parseFloat(this.getComputedStyleValue("--calculated-paper-radio-button-size").trim()),t=Math.floor(3*e);t%2!=e%2&&t++,this.updateStyles({"--paper-radio-button-ink-size":t+"px"})}}))}});const Ga={hostAttributes:{role:"menubar"},keyBindings:{left:"_onLeftKey",right:"_onRightKey"},_onUpKey:function(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},_onDownKey:function(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},get _isRTL(){return"rtl"===window.getComputedStyle(this).direction},_onLeftKey:function(e){this._isRTL?this._focusNext():this._focusPrevious(),e.detail.keyboardEvent.preventDefault()},_onRightKey:function(e){this._isRTL?this._focusPrevious():this._focusNext(),e.detail.keyboardEvent.preventDefault()},_onKeydown:function(e){this.keyboardEventMatchesKeys(e,"up down left right esc")||this._focusWithKeyboardEvent(e)}},qa=[Fa,Ga];xr({_template:Ot`
    <style>
      :host {
        display: inline-block;
      }

      :host ::slotted(*) {
        padding: var(--paper-radio-group-item-padding, 12px);
      }
    </style>

    <slot></slot>
`,is:"paper-radio-group",behaviors:[qa],hostAttributes:{role:"radiogroup"},properties:{attrForSelected:{type:String,value:"name"},selectedAttribute:{type:String,value:"checked"},selectable:{type:String,value:"paper-radio-button"},allowEmptySelection:{type:Boolean,value:!1}},select:function(e){var t=this._valueToItem(e);if(!t||!t.hasAttribute("disabled")){if(this.selected){var n=this._valueToItem(this.selected);if(this.selected==e){if(!this.allowEmptySelection)return void(n&&(n.checked=!0));e=""}n&&(n.checked=!1)}Ao.select.apply(this,[e]),this.fire("paper-radio-group-changed")}},_activateFocusedItem:function(){this._itemActivate(this._valueForItem(this.focusedItem),this.focusedItem)},_onUpKey:function(e){this._focusPrevious(),e.preventDefault(),this._activateFocusedItem()},_onDownKey:function(e){this._focusNext(),e.preventDefault(),this._activateFocusedItem()},_onLeftKey:function(e){Ga._onLeftKey.apply(this,arguments),this._activateFocusedItem()},_onRightKey:function(e){Ga._onRightKey.apply(this,arguments),this._activateFocusedItem()}});const Xa=Ot`
  <style>
    :host {
      @apply --layout;
      @apply --layout-justified;
      @apply --layout-center;
      width: 200px;
      cursor: default;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
      --paper-progress-active-color: var(--paper-slider-active-color, var(--google-blue-700));
      --paper-progress-secondary-color: var(--paper-slider-secondary-color, var(--google-blue-300));
      --paper-progress-disabled-active-color: var(--paper-slider-disabled-active-color, var(--paper-grey-400));
      --paper-progress-disabled-secondary-color: var(--paper-slider-disabled-secondary-color, var(--paper-grey-400));
      --calculated-paper-slider-height: var(--paper-slider-height, 2px);
    }

    /* focus shows the ripple */
    :host(:focus) {
      outline: none;
    }

    /**
      * NOTE(keanulee): Though :host-context is not universally supported, some pages
      * still rely on paper-slider being flipped when dir="rtl" is set on body. For full
      * compatibility, dir="rtl" must be explicitly set on paper-slider.
      */
    :dir(rtl) #sliderContainer {
      -webkit-transform: scaleX(-1);
      transform: scaleX(-1);
    }

    /**
      * NOTE(keanulee): This is separate from the rule above because :host-context may
      * not be recognized.
      */
    :host([dir="rtl"]) #sliderContainer {
      -webkit-transform: scaleX(-1);
      transform: scaleX(-1);
    }

    /**
      * NOTE(keanulee): Needed to override the :host-context rule (where supported)
      * to support LTR sliders in RTL pages.
      */
    :host([dir="ltr"]) #sliderContainer {
      -webkit-transform: scaleX(1);
      transform: scaleX(1);
    }

    #sliderContainer {
      position: relative;
      width: 100%;
      height: calc(30px + var(--calculated-paper-slider-height));
      margin-left: calc(15px + var(--calculated-paper-slider-height)/2);
      margin-right: calc(15px + var(--calculated-paper-slider-height)/2);
    }

    #sliderContainer:focus {
      outline: 0;
    }

    #sliderContainer.editable {
      margin-top: 12px;
      margin-bottom: 12px;
    }

    .bar-container {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      overflow: hidden;
    }

    .ring > .bar-container {
      left: calc(5px + var(--calculated-paper-slider-height)/2);
      transition: left 0.18s ease;
    }

    .ring.expand.dragging > .bar-container {
      transition: none;
    }

    .ring.expand:not(.pin) > .bar-container {
      left: calc(8px + var(--calculated-paper-slider-height)/2);
    }

    #sliderBar {
      padding: 15px 0;
      width: 100%;
      background-color: var(--paper-slider-bar-color, transparent);
      --paper-progress-container-color: var(--paper-slider-container-color, var(--paper-grey-400));
      --paper-progress-height: var(--calculated-paper-slider-height);
    }

    .slider-markers {
      position: absolute;
      /* slider-knob is 30px + the slider-height so that the markers should start at a offset of 15px*/
      top: 15px;
      height: var(--calculated-paper-slider-height);
      left: 0;
      right: -1px;
      box-sizing: border-box;
      pointer-events: none;
      @apply --layout-horizontal;
    }

    .slider-marker {
      @apply --layout-flex;
    }
    .slider-markers::after,
    .slider-marker::after {
      content: "";
      display: block;
      margin-left: -1px;
      width: 2px;
      height: var(--calculated-paper-slider-height);
      border-radius: 50%;
      background-color: var(--paper-slider-markers-color, #000);
    }

    .slider-knob {
      position: absolute;
      left: 0;
      top: 0;
      margin-left: calc(-15px - var(--calculated-paper-slider-height)/2);
      width: calc(30px + var(--calculated-paper-slider-height));
      height: calc(30px + var(--calculated-paper-slider-height));
    }

    .transiting > .slider-knob {
      transition: left 0.08s ease;
    }

    .slider-knob:focus {
      outline: none;
    }

    .slider-knob.dragging {
      transition: none;
    }

    .snaps > .slider-knob.dragging {
      transition: -webkit-transform 0.08s ease;
      transition: transform 0.08s ease;
    }

    .slider-knob-inner {
      margin: 10px;
      width: calc(100% - 20px);
      height: calc(100% - 20px);
      background-color: var(--paper-slider-knob-color, var(--google-blue-700));
      border: 2px solid var(--paper-slider-knob-color, var(--google-blue-700));
      border-radius: 50%;

      -moz-box-sizing: border-box;
      box-sizing: border-box;

      transition-property: -webkit-transform, background-color, border;
      transition-property: transform, background-color, border;
      transition-duration: 0.18s;
      transition-timing-function: ease;
    }

    .expand:not(.pin) > .slider-knob > .slider-knob-inner {
      -webkit-transform: scale(1.5);
      transform: scale(1.5);
    }

    .ring > .slider-knob > .slider-knob-inner {
      background-color: var(--paper-slider-knob-start-color, transparent);
      border: 2px solid var(--paper-slider-knob-start-border-color, var(--paper-grey-400));
    }

    .slider-knob-inner::before {
      background-color: var(--paper-slider-pin-color, var(--google-blue-700));
    }

    .pin > .slider-knob > .slider-knob-inner::before {
      content: "";
      position: absolute;
      top: 0;
      left: 50%;
      margin-left: -13px;
      width: 26px;
      height: 26px;
      border-radius: 50% 50% 50% 0;

      -webkit-transform: rotate(-45deg) scale(0) translate(0);
      transform: rotate(-45deg) scale(0) translate(0);
    }

    .slider-knob-inner::before,
    .slider-knob-inner::after {
      transition: -webkit-transform .18s ease, background-color .18s ease;
      transition: transform .18s ease, background-color .18s ease;
    }

    .pin.ring > .slider-knob > .slider-knob-inner::before {
      background-color: var(--paper-slider-pin-start-color, var(--paper-grey-400));
    }

    .pin.expand > .slider-knob > .slider-knob-inner::before {
      -webkit-transform: rotate(-45deg) scale(1) translate(17px, -17px);
      transform: rotate(-45deg) scale(1) translate(17px, -17px);
    }

    .pin > .slider-knob > .slider-knob-inner::after {
      content: attr(value);
      position: absolute;
      top: 0;
      left: 50%;
      margin-left: -16px;
      width: 32px;
      height: 26px;
      text-align: center;
      color: var(--paper-slider-font-color, #fff);
      font-size: 10px;

      -webkit-transform: scale(0) translate(0);
      transform: scale(0) translate(0);
    }

    .pin.expand > .slider-knob > .slider-knob-inner::after {
      -webkit-transform: scale(1) translate(0, -17px);
      transform: scale(1) translate(0, -17px);
    }

    /* paper-input */
    .slider-input {
      width: 50px;
      overflow: hidden;
      --paper-input-container-input: {
        text-align: center;
        @apply --paper-slider-input-container-input;
      };
      @apply --paper-slider-input;
    }

    /* disabled state */
    #sliderContainer.disabled {
      pointer-events: none;
    }

    .disabled > .slider-knob > .slider-knob-inner {
      background-color: var(--paper-slider-disabled-knob-color, var(--paper-grey-400));
      border: 2px solid var(--paper-slider-disabled-knob-color, var(--paper-grey-400));
      -webkit-transform: scale3d(0.75, 0.75, 1);
      transform: scale3d(0.75, 0.75, 1);
    }

    .disabled.ring > .slider-knob > .slider-knob-inner {
      background-color: var(--paper-slider-knob-start-color, transparent);
      border: 2px solid var(--paper-slider-knob-start-border-color, var(--paper-grey-400));
    }

    paper-ripple {
      color: var(--paper-slider-knob-color, var(--google-blue-700));
    }
  </style>

  <div id="sliderContainer" class\$="[[_getClassNames(disabled, pin, snaps, immediateValue, min, expand, dragging, transiting, editable)]]">
    <div class="bar-container">
      <paper-progress disabled\$="[[disabled]]" id="sliderBar" aria-hidden="true" min="[[min]]" max="[[max]]" step="[[step]]" value="[[immediateValue]]" secondary-progress="[[secondaryProgress]]" on-down="_bardown" on-up="_resetKnob" on-track="_bartrack" on-tap="_barclick">
      </paper-progress>
    </div>

    <template is="dom-if" if="[[snaps]]">
      <div class="slider-markers">
        <template is="dom-repeat" items="[[markers]]">
          <div class="slider-marker"></div>
        </template>
      </div>
    </template>

    <div id="sliderKnob" class="slider-knob" on-down="_knobdown" on-up="_resetKnob" on-track="_onTrack" on-transitionend="_knobTransitionEnd">
        <div class="slider-knob-inner" value\$="[[immediateValue]]"></div>
    </div>
  </div>

  <template is="dom-if" if="[[editable]]">
    <paper-input id="input" type="number" step="[[step]]" min="[[min]]" max="[[max]]" class="slider-input" disabled\$="[[disabled]]" value="[[immediateValue]]" on-change="_changeValue" on-keydown="_inputKeyDown" no-label-float>
    </paper-input>
  </template>
`;Xa.setAttribute("strip-whitespace",""),xr({_template:Xa,is:"paper-slider",behaviors:[wo,$o,Ko,Ua],properties:{value:{type:Number,value:0},snaps:{type:Boolean,value:!1,notify:!0},pin:{type:Boolean,value:!1,notify:!0},secondaryProgress:{type:Number,value:0,notify:!0,observer:"_secondaryProgressChanged"},editable:{type:Boolean,value:!1},immediateValue:{type:Number,value:0,readOnly:!0,notify:!0},maxMarkers:{type:Number,value:0,notify:!0},expand:{type:Boolean,value:!1,readOnly:!0},ignoreBarTouch:{type:Boolean,value:!1},dragging:{type:Boolean,value:!1,readOnly:!0,notify:!0},transiting:{type:Boolean,value:!1,readOnly:!0},markers:{type:Array,readOnly:!0,value:function(){return[]}}},observers:["_updateKnob(value, min, max, snaps, step)","_valueChanged(value)","_immediateValueChanged(immediateValue)","_updateMarkers(maxMarkers, min, max, snaps)"],hostAttributes:{role:"slider",tabindex:0},keyBindings:{left:"_leftKey",right:"_rightKey","down pagedown home":"_decrementKey","up pageup end":"_incrementKey"},ready:function(){this.ignoreBarTouch&&yi(this.$.sliderBar,"auto")},increment:function(){this.value=this._clampValue(this.value+this.step)},decrement:function(){this.value=this._clampValue(this.value-this.step)},_updateKnob:function(e,t,n,i,r){this.setAttribute("aria-valuemin",t),this.setAttribute("aria-valuemax",n),this.setAttribute("aria-valuenow",e),this._positionKnob(100*this._calcRatio(e))},_valueChanged:function(){this.fire("value-change",{composed:!0})},_immediateValueChanged:function(){this.dragging?this.fire("immediate-value-change",{composed:!0}):this.value=this.immediateValue},_secondaryProgressChanged:function(){this.secondaryProgress=this._clampValue(this.secondaryProgress)},_expandKnob:function(){this._setExpand(!0)},_resetKnob:function(){this.cancelDebouncer("expandKnob"),this._setExpand(!1)},_positionKnob:function(e){this._setImmediateValue(this._calcStep(this._calcKnobPosition(e))),this._setRatio(100*this._calcRatio(this.immediateValue)),this.$.sliderKnob.style.left=this.ratio+"%",this.dragging&&(this._knobstartx=this.ratio*this._w/100,this.translate3d(0,0,0,this.$.sliderKnob))},_calcKnobPosition:function(e){return(this.max-this.min)*e/100+this.min},_onTrack:function(e){switch(e.stopPropagation(),e.detail.state){case"start":this._trackStart(e);break;case"track":this._trackX(e);break;case"end":this._trackEnd()}},_trackStart:function(e){this._setTransiting(!1),this._w=this.$.sliderBar.offsetWidth,this._x=this.ratio*this._w/100,this._startx=this._x,this._knobstartx=this._startx,this._minx=-this._startx,this._maxx=this._w-this._startx,this.$.sliderKnob.classList.add("dragging"),this._setDragging(!0)},_trackX:function(e){this.dragging||this._trackStart(e);var t=this._isRTL?-1:1,n=Math.min(this._maxx,Math.max(this._minx,e.detail.dx*t));this._x=this._startx+n;var i=this._calcStep(this._calcKnobPosition(this._x/this._w*100));this._setImmediateValue(i);var r=this._calcRatio(this.immediateValue)*this._w-this._knobstartx;this.translate3d(r+"px",0,0,this.$.sliderKnob)},_trackEnd:function(){var e=this.$.sliderKnob.style;this.$.sliderKnob.classList.remove("dragging"),this._setDragging(!1),this._resetKnob(),this.value=this.immediateValue,e.transform=e.webkitTransform="",this.fire("change",{composed:!0})},_knobdown:function(e){this._expandKnob(),e.preventDefault(),this.focus()},_bartrack:function(e){this._allowBarEvent(e)&&this._onTrack(e)},_barclick:function(e){this._w=this.$.sliderBar.offsetWidth;var t=this.$.sliderBar.getBoundingClientRect(),n=(e.detail.x-t.left)/this._w*100;this._isRTL&&(n=100-n);var i=this.ratio;this._setTransiting(!0),this._positionKnob(n),i===this.ratio&&this._setTransiting(!1),this.async((function(){this.fire("change",{composed:!0})})),e.preventDefault(),this.focus()},_bardown:function(e){this._allowBarEvent(e)&&(this.debounce("expandKnob",this._expandKnob,60),this._barclick(e))},_knobTransitionEnd:function(e){e.target===this.$.sliderKnob&&this._setTransiting(!1)},_updateMarkers:function(e,t,n,i){i||this._setMarkers([]);var r=Math.round((n-t)/this.step);r>e&&(r=e),(r<0||!isFinite(r))&&(r=0),this._setMarkers(new Array(r))},_mergeClasses:function(e){return Object.keys(e).filter((function(t){return e[t]})).join(" ")},_getClassNames:function(){return this._mergeClasses({disabled:this.disabled,pin:this.pin,snaps:this.snaps,ring:this.immediateValue<=this.min,expand:this.expand,dragging:this.dragging,transiting:this.transiting,editable:this.editable})},_allowBarEvent:function(e){return!this.ignoreBarTouch||e.detail.sourceEvent instanceof MouseEvent},get _isRTL(){return void 0===this.__isRTL&&(this.__isRTL="rtl"===window.getComputedStyle(this).direction),this.__isRTL},_leftKey:function(e){this._isRTL?this._incrementKey(e):this._decrementKey(e)},_rightKey:function(e){this._isRTL?this._decrementKey(e):this._incrementKey(e)},_incrementKey:function(e){this.disabled||("end"===e.detail.key?this.value=this.max:this.increment(),this.fire("change"),e.preventDefault())},_decrementKey:function(e){this.disabled||("home"===e.detail.key?this.value=this.min:this.decrement(),this.fire("change"),e.preventDefault())},_changeValue:function(e){this.value=e.target.value,this.fire("change",{composed:!0})},_inputKeyDown:function(e){e.stopPropagation()},_createRipple:function(){return this._rippleContainer=this.$.sliderKnob,Wo._createRipple.call(this)},_focusedChanged:function(e){e&&this.ensureRipple(),this.hasRipple()&&(this._ripple.style.display=e?"":"none",this._ripple.holdDown=e)}});const Wa=document.createElement("template");Wa.setAttribute("style","display: none;"),Wa.innerHTML="<dom-module id=\"paper-spinner-styles\">\n  <template>\n    <style>\n      /*\n      /**************************/\n      /* STYLES FOR THE SPINNER */\n      /**************************/\n\n      /*\n       * Constants:\n       *      ARCSIZE     = 270 degrees (amount of circle the arc takes up)\n       *      ARCTIME     = 1333ms (time it takes to expand and contract arc)\n       *      ARCSTARTROT = 216 degrees (how much the start location of the arc\n       *                                should rotate each time, 216 gives us a\n       *                                5 pointed star shape (it's 360/5 * 3).\n       *                                For a 7 pointed star, we might do\n       *                                360/7 * 3 = 154.286)\n       *      SHRINK_TIME = 400ms\n       */\n\n      :host {\n        display: inline-block;\n        position: relative;\n        width: 28px;\n        height: 28px;\n\n        /* 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */\n        --paper-spinner-container-rotation-duration: 1568ms;\n\n        /* ARCTIME */\n        --paper-spinner-expand-contract-duration: 1333ms;\n\n        /* 4 * ARCTIME */\n        --paper-spinner-full-cycle-duration: 5332ms;\n\n        /* SHRINK_TIME */\n        --paper-spinner-cooldown-duration: 400ms;\n      }\n\n      #spinnerContainer {\n        width: 100%;\n        height: 100%;\n\n        /* The spinner does not have any contents that would have to be\n         * flipped if the direction changes. Always use ltr so that the\n         * style works out correctly in both cases. */\n        direction: ltr;\n      }\n\n      #spinnerContainer.active {\n        -webkit-animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite;\n        animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite;\n      }\n\n      @-webkit-keyframes container-rotate {\n        to { -webkit-transform: rotate(360deg) }\n      }\n\n      @keyframes container-rotate {\n        to { transform: rotate(360deg) }\n      }\n\n      .spinner-layer {\n        position: absolute;\n        width: 100%;\n        height: 100%;\n        opacity: 0;\n        white-space: nowrap;\n        color: var(--paper-spinner-color, var(--google-blue-500));\n      }\n\n      .layer-1 {\n        color: var(--paper-spinner-layer-1-color, var(--google-blue-500));\n      }\n\n      .layer-2 {\n        color: var(--paper-spinner-layer-2-color, var(--google-red-500));\n      }\n\n      .layer-3 {\n        color: var(--paper-spinner-layer-3-color, var(--google-yellow-500));\n      }\n\n      .layer-4 {\n        color: var(--paper-spinner-layer-4-color, var(--google-green-500));\n      }\n\n      /**\n       * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):\n       *\n       * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't\n       * guarantee that the animation will start _exactly_ after that value. So we avoid using\n       * animation-delay and instead set custom keyframes for each color (as layer-2undant as it\n       * seems).\n       */\n      .active .spinner-layer {\n        -webkit-animation-name: fill-unfill-rotate;\n        -webkit-animation-duration: var(--paper-spinner-full-cycle-duration);\n        -webkit-animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);\n        -webkit-animation-iteration-count: infinite;\n        animation-name: fill-unfill-rotate;\n        animation-duration: var(--paper-spinner-full-cycle-duration);\n        animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);\n        animation-iteration-count: infinite;\n        opacity: 1;\n      }\n\n      .active .spinner-layer.layer-1 {\n        -webkit-animation-name: fill-unfill-rotate, layer-1-fade-in-out;\n        animation-name: fill-unfill-rotate, layer-1-fade-in-out;\n      }\n\n      .active .spinner-layer.layer-2 {\n        -webkit-animation-name: fill-unfill-rotate, layer-2-fade-in-out;\n        animation-name: fill-unfill-rotate, layer-2-fade-in-out;\n      }\n\n      .active .spinner-layer.layer-3 {\n        -webkit-animation-name: fill-unfill-rotate, layer-3-fade-in-out;\n        animation-name: fill-unfill-rotate, layer-3-fade-in-out;\n      }\n\n      .active .spinner-layer.layer-4 {\n        -webkit-animation-name: fill-unfill-rotate, layer-4-fade-in-out;\n        animation-name: fill-unfill-rotate, layer-4-fade-in-out;\n      }\n\n      @-webkit-keyframes fill-unfill-rotate {\n        12.5% { -webkit-transform: rotate(135deg) } /* 0.5 * ARCSIZE */\n        25%   { -webkit-transform: rotate(270deg) } /* 1   * ARCSIZE */\n        37.5% { -webkit-transform: rotate(405deg) } /* 1.5 * ARCSIZE */\n        50%   { -webkit-transform: rotate(540deg) } /* 2   * ARCSIZE */\n        62.5% { -webkit-transform: rotate(675deg) } /* 2.5 * ARCSIZE */\n        75%   { -webkit-transform: rotate(810deg) } /* 3   * ARCSIZE */\n        87.5% { -webkit-transform: rotate(945deg) } /* 3.5 * ARCSIZE */\n        to    { -webkit-transform: rotate(1080deg) } /* 4   * ARCSIZE */\n      }\n\n      @keyframes fill-unfill-rotate {\n        12.5% { transform: rotate(135deg) } /* 0.5 * ARCSIZE */\n        25%   { transform: rotate(270deg) } /* 1   * ARCSIZE */\n        37.5% { transform: rotate(405deg) } /* 1.5 * ARCSIZE */\n        50%   { transform: rotate(540deg) } /* 2   * ARCSIZE */\n        62.5% { transform: rotate(675deg) } /* 2.5 * ARCSIZE */\n        75%   { transform: rotate(810deg) } /* 3   * ARCSIZE */\n        87.5% { transform: rotate(945deg) } /* 3.5 * ARCSIZE */\n        to    { transform: rotate(1080deg) } /* 4   * ARCSIZE */\n      }\n\n      @-webkit-keyframes layer-1-fade-in-out {\n        0% { opacity: 1 }\n        25% { opacity: 1 }\n        26% { opacity: 0 }\n        89% { opacity: 0 }\n        90% { opacity: 1 }\n        to { opacity: 1 }\n      }\n\n      @keyframes layer-1-fade-in-out {\n        0% { opacity: 1 }\n        25% { opacity: 1 }\n        26% { opacity: 0 }\n        89% { opacity: 0 }\n        90% { opacity: 1 }\n        to { opacity: 1 }\n      }\n\n      @-webkit-keyframes layer-2-fade-in-out {\n        0% { opacity: 0 }\n        15% { opacity: 0 }\n        25% { opacity: 1 }\n        50% { opacity: 1 }\n        51% { opacity: 0 }\n        to { opacity: 0 }\n      }\n\n      @keyframes layer-2-fade-in-out {\n        0% { opacity: 0 }\n        15% { opacity: 0 }\n        25% { opacity: 1 }\n        50% { opacity: 1 }\n        51% { opacity: 0 }\n        to { opacity: 0 }\n      }\n\n      @-webkit-keyframes layer-3-fade-in-out {\n        0% { opacity: 0 }\n        40% { opacity: 0 }\n        50% { opacity: 1 }\n        75% { opacity: 1 }\n        76% { opacity: 0 }\n        to { opacity: 0 }\n      }\n\n      @keyframes layer-3-fade-in-out {\n        0% { opacity: 0 }\n        40% { opacity: 0 }\n        50% { opacity: 1 }\n        75% { opacity: 1 }\n        76% { opacity: 0 }\n        to { opacity: 0 }\n      }\n\n      @-webkit-keyframes layer-4-fade-in-out {\n        0% { opacity: 0 }\n        65% { opacity: 0 }\n        75% { opacity: 1 }\n        90% { opacity: 1 }\n        to { opacity: 0 }\n      }\n\n      @keyframes layer-4-fade-in-out {\n        0% { opacity: 0 }\n        65% { opacity: 0 }\n        75% { opacity: 1 }\n        90% { opacity: 1 }\n        to { opacity: 0 }\n      }\n\n      .circle-clipper {\n        display: inline-block;\n        position: relative;\n        width: 50%;\n        height: 100%;\n        overflow: hidden;\n      }\n\n      /**\n       * Patch the gap that appear between the two adjacent div.circle-clipper while the\n       * spinner is rotating (appears on Chrome 50, Safari 9.1.1, and Edge).\n       */\n      .spinner-layer::after {\n        content: '';\n        left: 45%;\n        width: 10%;\n        border-top-style: solid;\n      }\n\n      .spinner-layer::after,\n      .circle-clipper .circle {\n        box-sizing: border-box;\n        position: absolute;\n        top: 0;\n        border-width: var(--paper-spinner-stroke-width, 3px);\n        border-radius: 50%;\n      }\n\n      .circle-clipper .circle {\n        bottom: 0;\n        width: 200%;\n        border-style: solid;\n        border-bottom-color: transparent !important;\n      }\n\n      .circle-clipper.left .circle {\n        left: 0;\n        border-right-color: transparent !important;\n        -webkit-transform: rotate(129deg);\n        transform: rotate(129deg);\n      }\n\n      .circle-clipper.right .circle {\n        left: -100%;\n        border-left-color: transparent !important;\n        -webkit-transform: rotate(-129deg);\n        transform: rotate(-129deg);\n      }\n\n      .active .gap-patch::after,\n      .active .circle-clipper .circle {\n        -webkit-animation-duration: var(--paper-spinner-expand-contract-duration);\n        -webkit-animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);\n        -webkit-animation-iteration-count: infinite;\n        animation-duration: var(--paper-spinner-expand-contract-duration);\n        animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);\n        animation-iteration-count: infinite;\n      }\n\n      .active .circle-clipper.left .circle {\n        -webkit-animation-name: left-spin;\n        animation-name: left-spin;\n      }\n\n      .active .circle-clipper.right .circle {\n        -webkit-animation-name: right-spin;\n        animation-name: right-spin;\n      }\n\n      @-webkit-keyframes left-spin {\n        0% { -webkit-transform: rotate(130deg) }\n        50% { -webkit-transform: rotate(-5deg) }\n        to { -webkit-transform: rotate(130deg) }\n      }\n\n      @keyframes left-spin {\n        0% { transform: rotate(130deg) }\n        50% { transform: rotate(-5deg) }\n        to { transform: rotate(130deg) }\n      }\n\n      @-webkit-keyframes right-spin {\n        0% { -webkit-transform: rotate(-130deg) }\n        50% { -webkit-transform: rotate(5deg) }\n        to { -webkit-transform: rotate(-130deg) }\n      }\n\n      @keyframes right-spin {\n        0% { transform: rotate(-130deg) }\n        50% { transform: rotate(5deg) }\n        to { transform: rotate(-130deg) }\n      }\n\n      #spinnerContainer.cooldown {\n        -webkit-animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite, fade-out var(--paper-spinner-cooldown-duration) cubic-bezier(0.4, 0.0, 0.2, 1);\n        animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite, fade-out var(--paper-spinner-cooldown-duration) cubic-bezier(0.4, 0.0, 0.2, 1);\n      }\n\n      @-webkit-keyframes fade-out {\n        0% { opacity: 1 }\n        to { opacity: 0 }\n      }\n\n      @keyframes fade-out {\n        0% { opacity: 1 }\n        to { opacity: 0 }\n      }\n    </style>\n  </template>\n</dom-module>",document.head.appendChild(Wa.content);const Ka={properties:{active:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"__activeChanged"},alt:{type:String,value:"loading",observer:"__altChanged"},__coolingDown:{type:Boolean,value:!1}},__computeContainerClasses:function(e,t){return[e||t?"active":"",t?"cooldown":""].join(" ")},__activeChanged:function(e,t){this.__setAriaHidden(!e),this.__coolingDown=!e&&t},__altChanged:function(e){"loading"===e?this.alt=this.getAttribute("aria-label")||e:(this.__setAriaHidden(""===e),this.setAttribute("aria-label",e))},__setAriaHidden:function(e){var t="aria-hidden";e?this.setAttribute(t,"true"):this.removeAttribute(t)},__reset:function(){this.active=!1,this.__coolingDown=!1}},Ya=Ot`
  <style include="paper-spinner-styles"></style>

  <div id="spinnerContainer" class-name="[[__computeContainerClasses(active, __coolingDown)]]" on-animationend="__reset" on-webkit-animation-end="__reset">
    <div class="spinner-layer layer-1">
      <div class="circle-clipper left">
        <div class="circle"></div>
      </div>
      <div class="circle-clipper right">
        <div class="circle"></div>
      </div>
    </div>

    <div class="spinner-layer layer-2">
      <div class="circle-clipper left">
        <div class="circle"></div>
      </div>
      <div class="circle-clipper right">
        <div class="circle"></div>
      </div>
    </div>

    <div class="spinner-layer layer-3">
      <div class="circle-clipper left">
        <div class="circle"></div>
      </div>
      <div class="circle-clipper right">
        <div class="circle"></div>
      </div>
    </div>

    <div class="spinner-layer layer-4">
      <div class="circle-clipper left">
        <div class="circle"></div>
      </div>
      <div class="circle-clipper right">
        <div class="circle"></div>
      </div>
    </div>
  </div>
`;Ya.setAttribute("strip-whitespace",""),xr({_template:Ya,is:"paper-spinner",behaviors:[Ka]});const Ja=Ot`
  <style include="paper-spinner-styles"></style>

  <div id="spinnerContainer" class-name="[[__computeContainerClasses(active, __coolingDown)]]" on-animationend="__reset" on-webkit-animation-end="__reset">
    <div class="spinner-layer">
      <div class="circle-clipper left">
        <div class="circle"></div>
      </div>
      <div class="circle-clipper right">
        <div class="circle"></div>
      </div>
    </div>
  </div>
`;Ja.setAttribute("strip-whitespace",""),xr({_template:Ja,is:"paper-spinner-lite",behaviors:[Ka]});const Za=Ot`<iron-iconset-svg name="paper-tabs" size="24">
<svg><defs>
<g id="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></g>
<g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path></g>
</defs></svg>
</iron-iconset-svg>`;document.head.appendChild(Za.content),xr({_template:Ot`
    <style>
      :host {
        @apply --layout-inline;
        @apply --layout-center;
        @apply --layout-center-justified;
        @apply --layout-flex-auto;

        position: relative;
        padding: 0 12px;
        overflow: hidden;
        cursor: pointer;
        vertical-align: middle;

        @apply --paper-font-common-base;
        @apply --paper-tab;
      }

      :host(:focus) {
        outline: none;
      }

      :host([link]) {
        padding: 0;
      }

      .tab-content {
        height: 100%;
        transform: translateZ(0);
          -webkit-transform: translateZ(0);
        transition: opacity 0.1s cubic-bezier(0.4, 0.0, 1, 1);
        @apply --layout-horizontal;
        @apply --layout-center-center;
        @apply --layout-flex-auto;
        @apply --paper-tab-content;
      }

      :host(:not(.iron-selected)) > .tab-content {
        opacity: 0.8;

        @apply --paper-tab-content-unselected;
      }

      :host(:focus) .tab-content {
        opacity: 1;
        font-weight: 700;

        @apply --paper-tab-content-focused;
      }

      paper-ripple {
        color: var(--paper-tab-ink, var(--paper-yellow-a100));
      }

      .tab-content > ::slotted(a) {
        @apply --layout-flex-auto;

        height: 100%;
      }
    </style>

    <div class="tab-content">
      <slot></slot>
    </div>
`,is:"paper-tab",behaviors:[Io,Lo,Vo],properties:{link:{type:Boolean,value:!1,reflectToAttribute:!0}},hostAttributes:{role:"tab"},listeners:{down:"_updateNoink",tap:"_onTap"},attached:function(){this._updateNoink()},get _parentNoink(){var e=rr(this).parentNode;return!!e&&!!e.noink},_updateNoink:function(){this.noink=!!this.noink||!!this._parentNoink},_onTap:function(e){if(this.link){var t=this.queryEffectiveChildren("a");if(!t)return;if(e.target===t)return;t.click()}}}),xr({_template:Ot`
    <style>
      :host {
        @apply --layout;
        @apply --layout-center;

        height: 48px;
        font-size: 14px;
        font-weight: 500;
        overflow: hidden;
        -moz-user-select: none;
        -ms-user-select: none;
        -webkit-user-select: none;
        user-select: none;

        /* NOTE: Both values are needed, since some phones require the value to be \`transparent\`. */
        -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
        -webkit-tap-highlight-color: transparent;

        @apply --paper-tabs;
      }

      :host(:dir(rtl)) {
        @apply --layout-horizontal-reverse;
      }

      #tabsContainer {
        position: relative;
        height: 100%;
        white-space: nowrap;
        overflow: hidden;
        @apply --layout-flex-auto;
        @apply --paper-tabs-container;
      }

      #tabsContent {
        height: 100%;
        -moz-flex-basis: auto;
        -ms-flex-basis: auto;
        flex-basis: auto;
        @apply --paper-tabs-content;
      }

      #tabsContent.scrollable {
        position: absolute;
        white-space: nowrap;
      }

      #tabsContent:not(.scrollable),
      #tabsContent.scrollable.fit-container {
        @apply --layout-horizontal;
      }

      #tabsContent.scrollable.fit-container {
        min-width: 100%;
      }

      #tabsContent.scrollable.fit-container > ::slotted(*) {
        /* IE - prevent tabs from compressing when they should scroll. */
        -ms-flex: 1 0 auto;
        -webkit-flex: 1 0 auto;
        flex: 1 0 auto;
      }

      .hidden {
        display: none;
      }

      .not-visible {
        opacity: 0;
        cursor: default;
      }

      paper-icon-button {
        width: 48px;
        height: 48px;
        padding: 12px;
        margin: 0 4px;
      }

      #selectionBar {
        position: absolute;
        height: 0;
        bottom: 0;
        left: 0;
        right: 0;
        border-bottom: 2px solid var(--paper-tabs-selection-bar-color, var(--paper-yellow-a100));
          -webkit-transform: scale(0);
        transform: scale(0);
          -webkit-transform-origin: left center;
        transform-origin: left center;
          transition: -webkit-transform;
        transition: transform;

        @apply --paper-tabs-selection-bar;
      }

      #selectionBar.align-bottom {
        top: 0;
        bottom: auto;
      }

      #selectionBar.expand {
        transition-duration: 0.15s;
        transition-timing-function: cubic-bezier(0.4, 0.0, 1, 1);
      }

      #selectionBar.contract {
        transition-duration: 0.18s;
        transition-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
      }

      #tabsContent > ::slotted(:not(#selectionBar)) {
        height: 100%;
      }
    </style>

    <paper-icon-button icon="paper-tabs:chevron-left" class$="[[_computeScrollButtonClass(_leftHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onLeftScrollButtonDown" tabindex="-1"></paper-icon-button>

    <div id="tabsContainer" on-track="_scroll" on-down="_down">
      <div id="tabsContent" class$="[[_computeTabsContentClass(scrollable, fitContainer)]]">
        <div id="selectionBar" class$="[[_computeSelectionBarClass(noBar, alignBottom)]]" on-transitionend="_onBarTransitionEnd"></div>
        <slot></slot>
      </div>
    </div>

    <paper-icon-button icon="paper-tabs:chevron-right" class$="[[_computeScrollButtonClass(_rightHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onRightScrollButtonDown" tabindex="-1"></paper-icon-button>
`,is:"paper-tabs",behaviors:[no,qa],properties:{noink:{type:Boolean,value:!1,observer:"_noinkChanged"},noBar:{type:Boolean,value:!1},noSlide:{type:Boolean,value:!1},scrollable:{type:Boolean,value:!1},fitContainer:{type:Boolean,value:!1},disableDrag:{type:Boolean,value:!1},hideScrollButtons:{type:Boolean,value:!1},alignBottom:{type:Boolean,value:!1},selectable:{type:String,value:"paper-tab"},autoselect:{type:Boolean,value:!1},autoselectDelay:{type:Number,value:0},_step:{type:Number,value:10},_holdDelay:{type:Number,value:1},_leftHidden:{type:Boolean,value:!1},_rightHidden:{type:Boolean,value:!1},_previousTab:{type:Object}},hostAttributes:{role:"tablist"},listeners:{"iron-resize":"_onTabSizingChanged","iron-items-changed":"_onTabSizingChanged","iron-select":"_onIronSelect","iron-deselect":"_onIronDeselect"},keyBindings:{"left:keyup right:keyup":"_onArrowKeyup"},created:function(){this._holdJob=null,this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0,this._bindDelayedActivationHandler=this._delayedActivationHandler.bind(this),this.addEventListener("blur",this._onBlurCapture.bind(this),!0)},ready:function(){this.setScrollDirection("y",this.$.tabsContainer)},detached:function(){this._cancelPendingActivation()},_noinkChanged:function(e){rr(this).querySelectorAll("paper-tab").forEach(e?this._setNoinkAttribute:this._removeNoinkAttribute)},_setNoinkAttribute:function(e){e.setAttribute("noink","")},_removeNoinkAttribute:function(e){e.removeAttribute("noink")},_computeScrollButtonClass:function(e,t,n){return!t||n?"hidden":e?"not-visible":""},_computeTabsContentClass:function(e,t){return e?"scrollable"+(t?" fit-container":""):" fit-container"},_computeSelectionBarClass:function(e,t){return e?"hidden":t?"align-bottom":""},_onTabSizingChanged:function(){this.debounce("_onTabSizingChanged",(function(){this._scroll(),this._tabChanged(this.selectedItem)}),10)},_onIronSelect:function(e){this._tabChanged(e.detail.item,this._previousTab),this._previousTab=e.detail.item,this.cancelDebouncer("tab-changed")},_onIronDeselect:function(e){this.debounce("tab-changed",(function(){this._tabChanged(null,this._previousTab),this._previousTab=null}),1)},_activateHandler:function(){this._cancelPendingActivation(),Da._activateHandler.apply(this,arguments)},_scheduleActivation:function(e,t){this._pendingActivationItem=e,this._pendingActivationTimeout=this.async(this._bindDelayedActivationHandler,t)},_delayedActivationHandler:function(){var e=this._pendingActivationItem;this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0,e.fire(this.activateEvent,null,{bubbles:!0,cancelable:!0})},_cancelPendingActivation:function(){void 0!==this._pendingActivationTimeout&&(this.cancelAsync(this._pendingActivationTimeout),this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0)},_onArrowKeyup:function(e){this.autoselect&&this._scheduleActivation(this.focusedItem,this.autoselectDelay)},_onBlurCapture:function(e){e.target===this._pendingActivationItem&&this._cancelPendingActivation()},get _tabContainerScrollSize(){return Math.max(0,this.$.tabsContainer.scrollWidth-this.$.tabsContainer.offsetWidth)},_scroll:function(e,t){if(this.scrollable){var n=t&&-t.ddx||0;this._affectScroll(n)}},_down:function(e){this.async((function(){this._defaultFocusAsync&&(this.cancelAsync(this._defaultFocusAsync),this._defaultFocusAsync=null)}),1)},_affectScroll:function(e){this.$.tabsContainer.scrollLeft+=e;var t=this.$.tabsContainer.scrollLeft;this._leftHidden=0===t,this._rightHidden=t===this._tabContainerScrollSize},_onLeftScrollButtonDown:function(){this._scrollToLeft(),this._holdJob=setInterval(this._scrollToLeft.bind(this),this._holdDelay)},_onRightScrollButtonDown:function(){this._scrollToRight(),this._holdJob=setInterval(this._scrollToRight.bind(this),this._holdDelay)},_onScrollButtonUp:function(){clearInterval(this._holdJob),this._holdJob=null},_scrollToLeft:function(){this._affectScroll(-this._step)},_scrollToRight:function(){this._affectScroll(this._step)},_tabChanged:function(e,t){if(!e)return this.$.selectionBar.classList.remove("expand"),this.$.selectionBar.classList.remove("contract"),void this._positionBar(0,0);var n=this.$.tabsContent.getBoundingClientRect(),i=n.width,r=e.getBoundingClientRect(),o=r.left-n.left;if(this._pos={width:this._calcPercent(r.width,i),left:this._calcPercent(o,i)},this.noSlide||null==t)return this.$.selectionBar.classList.remove("expand"),this.$.selectionBar.classList.remove("contract"),void this._positionBar(this._pos.width,this._pos.left);var a=t.getBoundingClientRect(),s=this.items.indexOf(t),l=this.items.indexOf(e);this.$.selectionBar.classList.add("expand");var c=s<l;this._isRTL&&(c=!c),c?this._positionBar(this._calcPercent(r.left+r.width-a.left,i)-5,this._left):this._positionBar(this._calcPercent(a.left+a.width-r.left,i)-5,this._calcPercent(o,i)+5),this.scrollable&&this._scrollToSelectedIfNeeded(r.width,o)},_scrollToSelectedIfNeeded:function(e,t){var n=t-this.$.tabsContainer.scrollLeft;(n<0||(n+=e-this.$.tabsContainer.offsetWidth)>0)&&(this.$.tabsContainer.scrollLeft+=n)},_calcPercent:function(e,t){return 100*e/t},_positionBar:function(e,t){e=e||0,t=t||0,this._width=e,this._left=t,this.transform("translateX("+t+"%) scaleX("+e/100+")",this.$.selectionBar)},_onBarTransitionEnd:function(e){var t=this.$.selectionBar.classList;t.contains("expand")?(t.remove("expand"),t.add("contract"),this._positionBar(this._pos.width,this._pos.left)):t.contains("contract")&&t.remove("contract")}});var Qa=null;xr({_template:Ot`
    <style>
      :host {
        display: block;
        position: fixed;
        background-color: var(--paper-toast-background-color, #323232);
        color: var(--paper-toast-color, #f1f1f1);
        min-height: 48px;
        min-width: 288px;
        padding: 16px 24px;
        box-sizing: border-box;
        box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
        border-radius: 2px;
        margin: 12px;
        font-size: 14px;
        cursor: default;
        -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
        transition: transform 0.3s, opacity 0.3s;
        opacity: 0;
        -webkit-transform: translateY(100px);
        transform: translateY(100px);
        @apply --paper-font-common-base;
      }

      :host(.capsule) {
        border-radius: 24px;
      }

      :host(.fit-bottom) {
        width: 100%;
        min-width: 0;
        border-radius: 0;
        margin: 0;
      }

      :host(.paper-toast-open) {
        opacity: 1;
        -webkit-transform: translateY(0px);
        transform: translateY(0px);
      }
    </style>

    <span id="label">{{text}}</span>
    <slot></slot>
`,is:"paper-toast",behaviors:[wa],properties:{fitInto:{type:Object,value:window,observer:"_onFitIntoChanged"},horizontalAlign:{type:String,value:"left"},verticalAlign:{type:String,value:"bottom"},duration:{type:Number,value:3e3},text:{type:String,value:""},noCancelOnOutsideClick:{type:Boolean,value:!0},noAutoFocus:{type:Boolean,value:!0}},listeners:{transitionend:"__onTransitionEnd"},get visible(){return eo._warn("`visible` is deprecated, use `opened` instead"),this.opened},get _canAutoClose(){return this.duration>0&&this.duration!==1/0},created:function(){this._autoClose=null,Ea.requestAvailability()},show:function(e){for(var t in"string"==typeof e&&(e={text:e}),e)0===t.indexOf("_")?eo._warn('The property "'+t+'" is private and was not set.'):t in this?this[t]=e[t]:eo._warn('The property "'+t+'" is not valid.');this.open()},hide:function(){this.close()},__onTransitionEnd:function(e){e&&e.target===this&&"opacity"===e.propertyName&&(this.opened?this._finishRenderOpened():this._finishRenderClosed())},_openedChanged:function(){null!==this._autoClose&&(this.cancelAsync(this._autoClose),this._autoClose=null),this.opened?(Qa&&Qa!==this&&Qa.close(),Qa=this,this.fire("iron-announce",{text:this.text}),this._canAutoClose&&(this._autoClose=this.async(this.close,this.duration))):Qa===this&&(Qa=null),ba._openedChanged.apply(this,arguments)},_renderOpened:function(){this.classList.add("paper-toast-open")},_renderClosed:function(){this.classList.remove("paper-toast-open")},_onFitIntoChanged:function(e){this.positionTarget=e}});const es=Ot`

    <style>
      :host {
        display: inline-block;
        @apply --layout-horizontal;
        @apply --layout-center;
        @apply --paper-font-common-base;
      }

      :host([disabled]) {
        pointer-events: none;
      }

      :host(:focus) {
        outline:none;
      }

      .toggle-bar {
        position: absolute;
        height: 100%;
        width: 100%;
        border-radius: 8px;
        pointer-events: none;
        opacity: 0.4;
        transition: background-color linear .08s;
        background-color: var(--paper-toggle-button-unchecked-bar-color, #000000);

        @apply --paper-toggle-button-unchecked-bar;
      }

      .toggle-button {
        position: absolute;
        top: -3px;
        left: 0;
        height: 20px;
        width: 20px;
        border-radius: 50%;
        box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.6);
        transition: -webkit-transform linear .08s, background-color linear .08s;
        transition: transform linear .08s, background-color linear .08s;
        will-change: transform;
        background-color: var(--paper-toggle-button-unchecked-button-color, var(--paper-grey-50));

        @apply --paper-toggle-button-unchecked-button;
      }

      .toggle-button.dragging {
        -webkit-transition: none;
        transition: none;
      }

      :host([checked]:not([disabled])) .toggle-bar {
        opacity: 0.5;
        background-color: var(--paper-toggle-button-checked-bar-color, var(--primary-color));

        @apply --paper-toggle-button-checked-bar;
      }

      :host([disabled]) .toggle-bar {
        background-color: #000;
        opacity: 0.12;
      }

      :host([checked]) .toggle-button {
        -webkit-transform: translate(16px, 0);
        transform: translate(16px, 0);
      }

      :host([checked]:not([disabled])) .toggle-button {
        background-color: var(--paper-toggle-button-checked-button-color, var(--primary-color));

        @apply --paper-toggle-button-checked-button;
      }

      :host([disabled]) .toggle-button {
        background-color: #bdbdbd;
        opacity: 1;
      }

      .toggle-ink {
        position: absolute;
        top: -14px;
        left: -14px;
        right: auto;
        bottom: auto;
        width: 48px;
        height: 48px;
        opacity: 0.5;
        pointer-events: none;
        color: var(--paper-toggle-button-unchecked-ink-color, var(--primary-text-color));

        @apply --paper-toggle-button-unchecked-ink;
      }

      :host([checked]) .toggle-ink {
        color: var(--paper-toggle-button-checked-ink-color, var(--primary-color));

        @apply --paper-toggle-button-checked-ink;
      }

      .toggle-container {
        display: inline-block;
        position: relative;
        width: 36px;
        height: 14px;
        /* The toggle button has an absolute position of -3px; The extra 1px
        /* accounts for the toggle button shadow box. */
        margin: 4px 1px;
      }

      .toggle-label {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        padding-left: var(--paper-toggle-button-label-spacing, 8px);
        pointer-events: none;
        color: var(--paper-toggle-button-label-color, var(--primary-text-color));
      }

      /* invalid state */
      :host([invalid]) .toggle-bar {
        background-color: var(--paper-toggle-button-invalid-bar-color, var(--error-color));
      }

      :host([invalid]) .toggle-button {
        background-color: var(--paper-toggle-button-invalid-button-color, var(--error-color));
      }

      :host([invalid]) .toggle-ink {
        color: var(--paper-toggle-button-invalid-ink-color, var(--error-color));
      }
    </style>

    <div class="toggle-container">
      <div id="toggleBar" class="toggle-bar"></div>
      <div id="toggleButton" class="toggle-button"></div>
    </div>

    <div class="toggle-label"><slot></slot></div>

  `;es.setAttribute("strip-whitespace",""),xr({_template:es,is:"paper-toggle-button",behaviors:[Yo],hostAttributes:{role:"button","aria-pressed":"false",tabindex:0},properties:{},listeners:{track:"_ontrack"},attached:function(){Ui(this,(function(){yi(this,"pan-y")}))},_ontrack:function(e){var t=e.detail;"start"===t.state?this._trackStart(t):"track"===t.state?this._trackMove(t):"end"===t.state&&this._trackEnd(t)},_trackStart:function(e){this._width=this.$.toggleBar.offsetWidth/2,this._trackChecked=this.checked,this.$.toggleButton.classList.add("dragging")},_trackMove:function(e){var t=e.dx;this._x=Math.min(this._width,Math.max(0,this._trackChecked?this._width+t:t)),this.translate3d(this._x+"px",0,0,this.$.toggleButton),this._userActivate(this._x>this._width/2)},_trackEnd:function(e){this.$.toggleButton.classList.remove("dragging"),this.transform("",this.$.toggleButton)},_createRipple:function(){this._rippleContainer=this.$.toggleButton;var e=Vo._createRipple();return e.id="ink",e.setAttribute("recenters",""),e.classList.add("circle","toggle-ink"),e}}),xr({_template:Ot`
    <style>
      :host {
        --calculated-paper-toolbar-height: var(--paper-toolbar-height, 64px);
        --calculated-paper-toolbar-sm-height: var(--paper-toolbar-sm-height, 56px);
        display: block;
        position: relative;
        box-sizing: border-box;
        -moz-box-sizing: border-box;
        height: var(--calculated-paper-toolbar-height);
        background: var(--paper-toolbar-background, var(--primary-color));
        color: var(--paper-toolbar-color, var(--dark-theme-text-color));
        @apply --paper-toolbar;
      }

      :host(.animate) {
        transition: var(--paper-toolbar-transition, height 0.18s ease-in);
      }

      :host(.medium-tall) {
        height: calc(var(--calculated-paper-toolbar-height) * 2);
        @apply --paper-toolbar-medium;
      }

      :host(.tall) {
        height: calc(var(--calculated-paper-toolbar-height) * 3);
        @apply --paper-toolbar-tall;
      }

      .toolbar-tools {
        position: relative;
        height: var(--calculated-paper-toolbar-height);
        padding: 0 16px;
        pointer-events: none;
        @apply --layout-horizontal;
        @apply --layout-center;
        @apply --paper-toolbar-content;
      }

      /*
       * TODO: Where should media query breakpoints live so they can be shared between elements?
       */

      @media (max-width: 600px) {
        :host {
          height: var(--calculated-paper-toolbar-sm-height);
        }

        :host(.medium-tall) {
          height: calc(var(--calculated-paper-toolbar-sm-height) * 2);
        }

        :host(.tall) {
          height: calc(var(--calculated-paper-toolbar-sm-height) * 3);
        }

        .toolbar-tools {
          height: var(--calculated-paper-toolbar-sm-height);
        }
      }

      #topBar {
        position: relative;
      }

      /* middle bar */
      #middleBar {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
      }

      :host(.tall) #middleBar,
      :host(.medium-tall) #middleBar {
        -webkit-transform: translateY(100%);
        transform: translateY(100%);
      }

      /* bottom bar */
      #bottomBar {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
      }

      /*
       * make elements (e.g. buttons) respond to mouse/touch events
       *
       * \`.toolbar-tools\` disables touch events so multiple toolbars can stack and not
       * absorb events. All children must have pointer events re-enabled to work as
       * expected.
       */
      .toolbar-tools > ::slotted(*:not([disabled])) {
        pointer-events: auto;
      }

      .toolbar-tools > ::slotted(.title) {
        @apply --paper-font-common-base;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        font-size: 20px;
        font-weight: 400;
        line-height: 1;
        pointer-events: none;
        @apply --layout-flex;
      }

      .toolbar-tools > ::slotted(.title) {
        margin-left: 56px;
      }

      .toolbar-tools > ::slotted(paper-icon-button + .title) {
        margin-left: 0;
      }

      /**
       * The --paper-toolbar-title mixin is applied here instead of above to
       * fix the issue with margin-left being ignored due to css ordering.
       */
      .toolbar-tools > ::slotted(.title) {
        @apply --paper-toolbar-title;
      }

      .toolbar-tools > ::slotted(paper-icon-button[icon=menu]) {
        margin-right: 24px;
      }

      .toolbar-tools > ::slotted(.fit) {
        position: absolute;
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        width: auto;
        margin: 0;
      }

      /* TODO(noms): Until we have a better solution for classes that don't use
       * /deep/ create our own.
       */
      .start-justified {
        @apply --layout-start-justified;
      }

      .center-justified {
        @apply --layout-center-justified;
      }

      .end-justified {
        @apply --layout-end-justified;
      }

      .around-justified {
        @apply --layout-around-justified;
      }

      .justified {
        @apply --layout-justified;
      }
    </style>

    <div id="topBar" class\$="toolbar-tools [[_computeBarExtraClasses(justify)]]">
      <slot name="top"></slot>
    </div>

    <div id="middleBar" class\$="toolbar-tools [[_computeBarExtraClasses(middleJustify)]]">
      <slot name="middle"></slot>
    </div>

    <div id="bottomBar" class\$="toolbar-tools [[_computeBarExtraClasses(bottomJustify)]]">
      <slot name="bottom"></slot>
    </div>
`,is:"paper-toolbar",hostAttributes:{role:"toolbar"},properties:{bottomJustify:{type:String,value:""},justify:{type:String,value:""},middleJustify:{type:String,value:""}},ready:function(){console.warn(this.is,"is deprecated. Please use app-layout instead!")},attached:function(){this._observer=this._observe(this),this._updateAriaLabelledBy()},detached:function(){this._observer&&this._observer.disconnect()},_observe:function(e){var t=new MutationObserver(function(){this._updateAriaLabelledBy()}.bind(this));return t.observe(e,{childList:!0,subtree:!0}),t},_updateAriaLabelledBy:function(){Yi();for(var e,t=[],n=Array.prototype.slice.call(rr(this.root).querySelectorAll("slot")).concat(Array.prototype.slice.call(rr(this.root).querySelectorAll("content"))),i=0;e=n[i];i++)for(var r,o=rr(e).getDistributedNodes(),a=0;r=o[a];a++)if(r.classList&&r.classList.contains("title"))if(r.id)t.push(r.id);else{var s="paper-toolbar-label-"+Math.floor(1e4*Math.random());r.id=s,t.push(s)}t.length>0&&this.setAttribute("aria-labelledby",t.join(" "))},_computeBarExtraClasses:function(e){return e?e+("justified"===e?"":"-justified"):""}}),xr({_template:Ot`
    <style>
      :host {
        display: block;
        position: absolute;
        outline: none;
        z-index: 1002;
        -moz-user-select: none;
        -ms-user-select: none;
        -webkit-user-select: none;
        user-select: none;
        cursor: default;
      }

      #tooltip {
        display: block;
        outline: none;
        @apply --paper-font-common-base;
        font-size: 10px;
        line-height: 1;
        background-color: var(--paper-tooltip-background, #616161);
        color: var(--paper-tooltip-text-color, white);
        padding: 8px;
        border-radius: 2px;
        @apply --paper-tooltip;
      }

      @keyframes keyFrameScaleUp {
        0% {
          transform: scale(0.0);
        }
        100% {
          transform: scale(1.0);
        }
      }

      @keyframes keyFrameScaleDown {
        0% {
          transform: scale(1.0);
        }
        100% {
          transform: scale(0.0);
        }
      }

      @keyframes keyFrameFadeInOpacity {
        0% {
          opacity: 0;
        }
        100% {
          opacity: var(--paper-tooltip-opacity, 0.9);
        }
      }

      @keyframes keyFrameFadeOutOpacity {
        0% {
          opacity: var(--paper-tooltip-opacity, 0.9);
        }
        100% {
          opacity: 0;
        }
      }

      @keyframes keyFrameSlideDownIn {
        0% {
          transform: translateY(-2000px);
          opacity: 0;
        }
        10% {
          opacity: 0.2;
        }
        100% {
          transform: translateY(0);
          opacity: var(--paper-tooltip-opacity, 0.9);
        }
      }

      @keyframes keyFrameSlideDownOut {
        0% {
          transform: translateY(0);
          opacity: var(--paper-tooltip-opacity, 0.9);
        }
        10% {
          opacity: 0.2;
        }
        100% {
          transform: translateY(-2000px);
          opacity: 0;
        }
      }

      .fade-in-animation {
        opacity: 0;
        animation-delay: var(--paper-tooltip-delay-in, 500ms);
        animation-name: keyFrameFadeInOpacity;
        animation-iteration-count: 1;
        animation-timing-function: ease-in;
        animation-duration: var(--paper-tooltip-duration-in, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .fade-out-animation {
        opacity: var(--paper-tooltip-opacity, 0.9);
        animation-delay: var(--paper-tooltip-delay-out, 0ms);
        animation-name: keyFrameFadeOutOpacity;
        animation-iteration-count: 1;
        animation-timing-function: ease-in;
        animation-duration: var(--paper-tooltip-duration-out, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .scale-up-animation {
        transform: scale(0);
        opacity: var(--paper-tooltip-opacity, 0.9);
        animation-delay: var(--paper-tooltip-delay-in, 500ms);
        animation-name: keyFrameScaleUp;
        animation-iteration-count: 1;
        animation-timing-function: ease-in;
        animation-duration: var(--paper-tooltip-duration-in, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .scale-down-animation {
        transform: scale(1);
        opacity: var(--paper-tooltip-opacity, 0.9);
        animation-delay: var(--paper-tooltip-delay-out, 500ms);
        animation-name: keyFrameScaleDown;
        animation-iteration-count: 1;
        animation-timing-function: ease-in;
        animation-duration: var(--paper-tooltip-duration-out, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .slide-down-animation {
        transform: translateY(-2000px);
        opacity: 0;
        animation-delay: var(--paper-tooltip-delay-out, 500ms);
        animation-name: keyFrameSlideDownIn;
        animation-iteration-count: 1;
        animation-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
        animation-duration: var(--paper-tooltip-duration-out, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .slide-down-animation-out {
        transform: translateY(0);
        opacity: var(--paper-tooltip-opacity, 0.9);
        animation-delay: var(--paper-tooltip-delay-out, 500ms);
        animation-name: keyFrameSlideDownOut;
        animation-iteration-count: 1;
        animation-timing-function: cubic-bezier(0.4, 0.0, 1, 1);
        animation-duration: var(--paper-tooltip-duration-out, 500ms);
        animation-fill-mode: forwards;
        @apply --paper-tooltip-animation;
      }

      .cancel-animation {
        animation-delay: -30s !important;
      }

      /* Thanks IE 10. */

      .hidden {
        display: none !important;
      }
    </style>

    <div id="tooltip" class="hidden">
      <slot></slot>
    </div>
`,is:"paper-tooltip",hostAttributes:{role:"tooltip",tabindex:-1},properties:{for:{type:String,observer:"_findTarget"},manualMode:{type:Boolean,value:!1,observer:"_manualModeChanged"},position:{type:String,value:"bottom"},fitToVisibleBounds:{type:Boolean,value:!1},offset:{type:Number,value:14},marginTop:{type:Number,value:14},animationDelay:{type:Number,value:500,observer:"_delayChange"},animationEntry:{type:String,value:""},animationExit:{type:String,value:""},animationConfig:{type:Object,value:function(){return{entry:[{name:"fade-in-animation",node:this,timing:{delay:0}}],exit:[{name:"fade-out-animation",node:this}]}}},_showing:{type:Boolean,value:!1}},listeners:{webkitAnimationEnd:"_onAnimationEnd"},get target(){var e=rr(this).parentNode,t=rr(this).getOwnerRoot();return this.for?rr(t).querySelector("#"+this.for):e.nodeType==Node.DOCUMENT_FRAGMENT_NODE?t.host:e},attached:function(){this._findTarget()},detached:function(){this.manualMode||this._removeListeners()},playAnimation:function(e){"entry"===e?this.show():"exit"===e&&this.hide()},cancelAnimation:function(){this.$.tooltip.classList.add("cancel-animation")},show:function(){if(!this._showing){if(""===rr(this).textContent.trim()){for(var e=!0,t=rr(this).getEffectiveChildNodes(),n=0;n<t.length;n++)if(""!==t[n].textContent.trim()){e=!1;break}if(e)return}this._showing=!0,this.$.tooltip.classList.remove("hidden"),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.updatePosition(),this._animationPlaying=!0,this.$.tooltip.classList.add(this._getAnimationType("entry"))}},hide:function(){if(this._showing){if(this._animationPlaying)return this._showing=!1,void this._cancelAnimation();this._onAnimationFinish(),this._showing=!1,this._animationPlaying=!0}},updatePosition:function(){if(this._target&&this.offsetParent){var e=this.offset;14!=this.marginTop&&14==this.offset&&(e=this.marginTop);var t,n,i=this.offsetParent.getBoundingClientRect(),r=this._target.getBoundingClientRect(),o=this.getBoundingClientRect(),a=(r.width-o.width)/2,s=(r.height-o.height)/2,l=r.left-i.left,c=r.top-i.top;switch(this.position){case"top":t=l+a,n=c-o.height-e;break;case"bottom":t=l+a,n=c+r.height+e;break;case"left":t=l-o.width-e,n=c+s;break;case"right":t=l+r.width+e,n=c+s}this.fitToVisibleBounds?(i.left+t+o.width>window.innerWidth?(this.style.right="0px",this.style.left="auto"):(this.style.left=Math.max(0,t)+"px",this.style.right="auto"),i.top+n+o.height>window.innerHeight?(this.style.bottom=i.height-c+e+"px",this.style.top="auto"):(this.style.top=Math.max(-i.top,n)+"px",this.style.bottom="auto")):(this.style.left=t+"px",this.style.top=n+"px")}},_addListeners:function(){this._target&&(this.listen(this._target,"mouseenter","show"),this.listen(this._target,"focus","show"),this.listen(this._target,"mouseleave","hide"),this.listen(this._target,"blur","hide"),this.listen(this._target,"tap","hide")),this.listen(this.$.tooltip,"animationend","_onAnimationEnd"),this.listen(this,"mouseenter","hide")},_findTarget:function(){this.manualMode||this._removeListeners(),this._target=this.target,this.manualMode||this._addListeners()},_delayChange:function(e){500!==e&&this.updateStyles({"--paper-tooltip-delay-in":e+"ms"})},_manualModeChanged:function(){this.manualMode?this._removeListeners():this._addListeners()},_cancelAnimation:function(){this.$.tooltip.classList.remove(this._getAnimationType("entry")),this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.add("hidden")},_onAnimationFinish:function(){this._showing&&(this.$.tooltip.classList.remove(this._getAnimationType("entry")),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.add(this._getAnimationType("exit")))},_onAnimationEnd:function(){this._animationPlaying=!1,this._showing||(this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.$.tooltip.classList.add("hidden"))},_getAnimationType:function(e){if("entry"===e&&""!==this.animationEntry)return this.animationEntry;if("exit"===e&&""!==this.animationExit)return this.animationExit;if(this.animationConfig[e]&&"string"==typeof this.animationConfig[e][0].name){if(this.animationConfig[e][0].timing&&this.animationConfig[e][0].timing.delay&&0!==this.animationConfig[e][0].timing.delay){var t=this.animationConfig[e][0].timing.delay;"entry"===e?this.updateStyles({"--paper-tooltip-delay-in":t+"ms"}):"exit"===e&&this.updateStyles({"--paper-tooltip-delay-out":t+"ms"})}return this.animationConfig[e][0].name}},_removeListeners:function(){this._target&&(this.unlisten(this._target,"mouseenter","show"),this.unlisten(this._target,"focus","show"),this.unlisten(this._target,"mouseleave","hide"),this.unlisten(this._target,"blur","hide"),this.unlisten(this._target,"tap","hide")),this.unlisten(this.$.tooltip,"animationend","_onAnimationEnd"),this.unlisten(this,"mouseenter","hide")}});class ts{constructor(){this.cancellationCount=0}cancellable(e){const t=this.cancellationCount;return n=>{const i=this.cancellationCount!==t;return e({value:n,cancelled:i})}}cancelAll(){this.cancellationCount++}}class ns extends Error{constructor(){super(...arguments),this.name="RequestCancellationError"}}class is extends Error{constructor(e){super(e),this.name="InvalidRequestOptionsError",Object.setPrototypeOf(this,is.prototype)}}class rs extends Error{constructor(e,t){super(),this.message=`RequestNetworkError: ${e.status} at ${t}`,this.name="RequestNetworkError",this.req=e,this.url=t}}var os;!function(e){e.GET="GET",e.POST="POST"}(os||(os={}));class as{validate(){if(this.methodType===os.GET&&this.body)throw new is("body must be missing for a GET request.")}}class ss{constructor(e=1e3,t=3){this._queue=[],this._nActiveRequests=0,this._nSimultaneousRequests=e,this._maxRetries=t}request(e,t){const n=function(e){const t=new as;return e?(t.methodType=os.POST,t.body=function(e){const t=new FormData;for(const[n,i]of Object.entries(e)){const e=Array.isArray(i)?i:[i];for(const i of e)t.append(n,i)}return t}(e),t):(t.methodType=os.GET,t)}(t);return this.requestWithOptions(e,n)}requestWithOptions(e,t){t.validate();const n=new Promise(((e,t)=>{const n={resolve:e,reject:t};this._queue.push(n),this.launchRequests()})).then((()=>this.promiseWithRetries(e,this._maxRetries,t))).then((e=>(this._nActiveRequests--,this.launchRequests(),e)),(e=>("RequestNetworkError"===e.name&&(this._nActiveRequests--,this.launchRequests()),Promise.reject(e))));return n}fetch(e,t){return new Promise(((e,t)=>{const n={resolve:e,reject:t};this._queue.push(n),this.launchRequests()})).then((()=>{let n=1;return new Promise((i=>{const r=()=>{fetch(e,t).then((e=>{if(!e.ok&&this._maxRetries>n)return n++,void r();i(e),this._nActiveRequests--,this.launchRequests()}))};r()}))}))}clearQueue(){for(var e;this._queue.length>0;)null===(e=this._queue.pop())||void 0===e||e.reject(new ns("Request cancelled by clearQueue"))}activeRequests(){return this._nActiveRequests}outstandingRequests(){return this._nActiveRequests+this._queue.length}launchRequests(){for(;this._nActiveRequests<this._nSimultaneousRequests&&this._queue.length>0;)this._nActiveRequests++,this._queue.pop().resolve(void 0)}promiseWithRetries(e,t,n){return this._promiseFromUrl(e,n).then((e=>e),(i=>t>0?this.promiseWithRetries(e,t-1,n):Promise.reject(i)))}_promiseFromUrl(e,t){return new Promise(((n,i)=>{const r=function(e,t,n,i){const r=new XMLHttpRequest;return r.open(e,t),n&&(r.withCredentials=n),i&&r.setRequestHeader("Content-Type",i),r}(t.methodType,e,t.withCredentials,t.contentType);r.setRequestHeader("X-TensorBoard-Feature-Flags",JSON.stringify({})),r.onload=function(){200===r.status?n(JSON.parse(r.responseText)):i(new rs(r,e))},r.onerror=function(){i(new rs(r,e))},t.body?r.send(t.body):r.send()}))}}const ls="experimentalPlugin",cs=new URLSearchParams(window.location.search);let ds={environment:()=>ps("/environment"),experiments:()=>ps("/experiments"),pluginRoute:(e,t,n)=>ps(`/plugin/${e}${t}`,n),pluginRouteForSrc:(e,t,n=new URLSearchParams)=>ps(`/plugin/${e}${t}`,n),pluginsListing:()=>ps("/plugins_listing",function(e={}){const t=Object.keys(e).sort().filter((t=>e[t])),n=new URLSearchParams;return t.forEach((t=>{const i=e[t];(Array.isArray(i)?i:[i]).forEach((e=>n.append(t,e)))})),n}({[ls]:cs.getAll(ls)})),runs:()=>ps("/runs")};function hs(){return ds}function ps(e,t=new URLSearchParams){let n="/data"+e;return String(t)&&(n+=(e.includes("?")?"&":"?")+String(t)),n}function us(e){return class extends e{connectedCallback(){super.connectedCallback(),this._maybeSetDarkMode(),this.observer=new MutationObserver((e=>{e.some((e=>"class"===e.attributeName))&&this._maybeSetDarkMode()})),this.observer.observe(document.body,{attributes:!0})}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this.observer)||void 0===e||e.disconnect()}_maybeSetDarkMode(){this.classList.toggle("dark-mode",document.body.classList.contains("dark-mode"))}}}!function(e){const{moduleName:t,styleContent:n}=e,i=document.createElement("dom-module"),r=document.createElement("template"),o=[];e.styleDependencies&&e.styleDependencies.forEach((e=>{const t=document.createElement("style");t.setAttribute("include",e),o.push(t)}));const a=document.createElement("style");Object.assign(a,{textContent:n}),o.forEach((e=>{r.content.appendChild(e)})),r.content.appendChild(a),i.appendChild(r),i.register(t)}({moduleName:"scrollbar-style",styleContent:"\n    .scrollbar::-webkit-scrollbar-track {\n      visibility: hidden;\n    }\n\n    .scrollbar::-webkit-scrollbar {\n      width: 10px;\n    }\n\n    .scrollbar::-webkit-scrollbar-thumb {\n      border-radius: 10px;\n      -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);\n      background-color: var(--paper-grey-500);\n      color: var(--paper-grey-900);\n    }\n    .scrollbar {\n      box-sizing: border-box;\n    }\n  "}),n(9153);let fs=class extends(us(Pt)){};fs.template=Ot`
    <div id="sidebar">
      <slot name="sidebar"></slot>
    </div>

    <div id="center">
      <slot name="center" class="scollbar"></slot>
    </div>
    <style include="scrollbar-style"></style>
    <style>
      :host {
        background-color: #f5f5f5;
        display: flex;
        flex-direction: row;
        height: 100%;
      }

      :host(.dark-mode) {
        background-color: var(--secondary-background-color);
      }

      #sidebar {
        flex: 0 0 var(--tf-dashboard-layout-sidebar-basis, 25%);
        height: 100%;
        max-width: var(--tf-dashboard-layout-sidebar-max-width, 350px);
        min-width: var(--tf-dashboard-layout-sidebar-min-width, 270px);
        overflow-y: auto;
        text-overflow: ellipsis;
      }

      #center {
        flex-grow: 1;
        flex-shrink: 1;
        height: 100%;
        overflow: hidden;
      }

      ::slotted([slot='center']) {
        contain: strict;
        height: 100%;
        overflow-x: hidden;
        overflow-y: auto;
        width: 100%;
        will-change: transform;
      }

      .tf-graph-dashboard #center {
        background: #fff;
      }
    </style>
  `,fs=a([c("tf-dashboard-layout")],fs);class gs{constructor(e){this.listener=e}}const ms=new Set,vs=new Set;function ys(e){const t=new gs(e);return ms.add(t),t}function _s(e){const t=new gs(e);return vs.add(t),t}function bs(){vs.forEach((e=>e.listener()))}function xs(e){ms.delete(e)}function ws(e){vs.delete(e)}window.addEventListener("hashchange",(()=>{ms.forEach((e=>e.listener()))})),window.addEventListener("storage",(()=>{vs.forEach((e=>e.listener()))}));var Ss=n(2543);let Es="";const Cs="__tab__";let zs={};function ks(){return Es}function Ms(e){const t={};return e.split("&").forEach((e=>{const n=e.split("=");1===n.length?t[Cs]=n[0]:2===n.length&&(t[decodeURIComponent(n[0])]=decodeURIComponent(n[1]))})),t}function As(e,t=!1){Es=e}function Ts(e){let t="";void 0!==e[Cs]&&(t+=e[Cs]);const n=Object.keys(e).map((t=>[t,e[t]])).filter((e=>e[0]!==Cs)).map((e=>encodeURIComponent(e[0])+"="+encodeURIComponent(e[1]))).join("&");return n.length>0?t+"&"+n:t}ys((()=>{zs=Ms(ks())}));const{get:Ns,set:Is,getInitializer:Os,getObserver:Ls,disposeBinding:Ps}=Js((e=>e),(e=>e)),{get:Hs,set:Rs,getInitializer:Vs,getObserver:Bs,disposeBinding:Ds}=Js((e=>"true"===e||"false"!==e&&void 0),(e=>e.toString())),{get:Fs,set:js,getInitializer:Us,getObserver:$s,disposeBinding:Gs}=Js((e=>+e),(e=>e.toString())),{get:qs,set:Xs,getInitializer:Ws,getObserver:Ks,disposeBinding:Ys}=Js((e=>JSON.parse(atob(e))),(e=>btoa(JSON.stringify(e))));function Js(e,t){const n=[],i=[];function r(t,n={}){const{defaultValue:i,useLocalStorage:r=!1}=n,o=r?window.localStorage.getItem(t):Ms(ks())[t];return null==o?Ss.cloneDeep(i):e(o)}function o(e,n,i={}){const{defaultValue:o,useLocalStorage:a=!1,useLocationReplace:s=!1}=i,l=t(n);if(a)window.localStorage.setItem(e,l),bs();else if(!Ss.isEqual(n,r(e,{useLocalStorage:a})))if(Ss.isEqual(n,o))!function(e,t=!1){const n=Ms(ks());delete n[e],As(Ts(n),t)}(e,s);else{const t=Ms(ks());t[e]=l,As(Ts(t),s)}}return{get:r,set:o,getInitializer:function(e,t){const o=Object.assign({defaultValue:t.defaultValue,polymerProperty:e,useLocalStorage:!1},t);return function(){const t=Zs(this,e),a=()=>{const e=r(t,o),n=this[o.polymerProperty];Ss.isEqual(e,n)||(this[o.polymerProperty]=e)},s=(o.useLocalStorage?_s:ys)((()=>a()));return o.useLocalStorage?i.push(s):n.push(s),a(),this[o.polymerProperty]}},getObserver:function(e,t){const n=Object.assign({defaultValue:t.defaultValue,polymerProperty:e,useLocalStorage:!1},t);return function(){o(Zs(this,e),this[n.polymerProperty],n)}},disposeBinding:function(){n.forEach((e=>xs(e))),i.forEach((e=>ws(e)))}}}function Zs(e,t){const n=e.disambiguator;return(null==n?[t]:[n,t]).join(".")}function Qs(e,t){let n=0,i=0;for(;;){if(n===e.length)return i===t.length?0:-1;if(i===t.length)return 1;if(tl(e[n])&&tl(t[i])){const r=n,o=i;n=el(e,n+1),i=el(t,i+1);const a=parseFloat(e.slice(r,n)),s=parseFloat(t.slice(o,i));if(a<s)return-1;if(a>s)return 1}else{if(nl(e[n])){if(!nl(t[i]))return-1}else{if(nl(t[i]))return 1;if(e[n]<t[i])return-1;if(e[n]>t[i])return 1}n++,i++}}}function el(e,t){let n;!function(e){e[e.NATURAL=0]="NATURAL",e[e.REAL=1]="REAL",e[e.EXPONENT_SIGN=2]="EXPONENT_SIGN",e[e.EXPONENT=3]="EXPONENT"}(n||(n={}));let i=n.NATURAL;for(;t<e.length;t++)if(i===n.NATURAL){if("."===e[t])i=n.REAL;else if("e"===e[t]||"E"===e[t])i=n.EXPONENT_SIGN;else if(!tl(e[t]))break}else if(i===n.REAL){if("e"===e[t]||"E"===e[t])i=n.EXPONENT_SIGN;else if(!tl(e[t]))break}else if(i===n.EXPONENT_SIGN){if(!tl(e[t])&&"+"!==e[t]&&"-"!==e[t])break;i=n.EXPONENT}else if(i===n.EXPONENT&&!tl(e[t]))break;return t}function tl(e){return"0"<=e&&e<="9"}function nl(e){return"/"===e||"_"===e||tl(e)}function il(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}var rl,ol;const al=(1===(rl=il).length&&(ol=rl,rl=function(e,t){return il(ol(e),t)}),{left:function(e,t,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n<i;){var r=n+i>>>1;rl(e[r],t)<0?n=r+1:i=r}return n},right:function(e,t,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n<i;){var r=n+i>>>1;rl(e[r],t)>0?i=r:n=r+1}return n}}).right;var sl=Array.prototype,ll=(sl.slice,sl.map,Math.sqrt(50)),cl=Math.sqrt(10),dl=Math.sqrt(2);function hl(e,t,n){var i=(t-e)/Math.max(0,n),r=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,r);return r>=0?(o>=ll?10:o>=cl?5:o>=dl?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=ll?10:o>=cl?5:o>=dl?2:1)}function pl(e,t){var n,i,r=e.length,o=-1;if(null==t){for(;++o<r;)if(null!=(n=e[o])&&n>=n)for(i=n;++o<r;)null!=(n=e[o])&&n>i&&(i=n)}else for(;++o<r;)if(null!=(n=t(e[o],o,e))&&n>=n)for(i=n;++o<r;)null!=(n=t(e[o],o,e))&&n>i&&(i=n);return i}function ul(e,t,n){e=+e,t=+t,n=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+n;for(var i=-1,r=0|Math.max(0,Math.ceil((t-e)/n)),o=new Array(r);++i<r;)o[i]=e+i*n;return o}function fl(){}function gl(e){return null==e?fl:function(){return this.querySelector(e)}}function ml(){return[]}function vl(e){return null==e?ml:function(){return this.querySelectorAll(e)}}function yl(e){return function(){return this.matches(e)}}function _l(e){return new Array(e.length)}function bl(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function xl(e,t,n,i,r,o){for(var a,s=0,l=t.length,c=o.length;s<c;++s)(a=t[s])?(a.__data__=o[s],i[s]=a):n[s]=new bl(e,o[s]);for(;s<l;++s)(a=t[s])&&(r[s]=a)}function wl(e,t,n,i,r,o,a){var s,l,c,d={},h=t.length,p=o.length,u=new Array(h);for(s=0;s<h;++s)(l=t[s])&&(u[s]=c="$"+a.call(l,l.__data__,s,t),c in d?r[s]=l:d[c]=l);for(s=0;s<p;++s)(l=d[c="$"+a.call(e,o[s],s,o)])?(i[s]=l,l.__data__=o[s],d[c]=null):n[s]=new bl(e,o[s]);for(s=0;s<h;++s)(l=t[s])&&d[u[s]]===l&&(r[s]=l)}function Sl(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}Array.prototype.slice,bl.prototype={constructor:bl,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var El="http://www.w3.org/1999/xhtml";const Cl={svg:"http://www.w3.org/2000/svg",xhtml:El,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function zl(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),Cl.hasOwnProperty(t)?{space:Cl[t],local:e}:e}function kl(e){return function(){this.removeAttribute(e)}}function Ml(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Al(e,t){return function(){this.setAttribute(e,t)}}function Tl(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Nl(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function Il(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Ol(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Ll(e){return function(){this.style.removeProperty(e)}}function Pl(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Hl(e,t,n){return function(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(e):this.style.setProperty(e,i,n)}}function Rl(e,t){return e.style.getPropertyValue(t)||Ol(e).getComputedStyle(e,null).getPropertyValue(t)}function Vl(e){return function(){delete this[e]}}function Bl(e,t){return function(){this[e]=t}}function Dl(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function Fl(e){return e.trim().split(/^|\s+/)}function jl(e){return e.classList||new Ul(e)}function Ul(e){this._node=e,this._names=Fl(e.getAttribute("class")||"")}function $l(e,t){for(var n=jl(e),i=-1,r=t.length;++i<r;)n.add(t[i])}function Gl(e,t){for(var n=jl(e),i=-1,r=t.length;++i<r;)n.remove(t[i])}function ql(e){return function(){$l(this,e)}}function Xl(e){return function(){Gl(this,e)}}function Wl(e,t){return function(){(t.apply(this,arguments)?$l:Gl)(this,e)}}function Kl(){this.textContent=""}function Yl(e){return function(){this.textContent=e}}function Jl(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function Zl(){this.innerHTML=""}function Ql(e){return function(){this.innerHTML=e}}function ec(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function tc(){this.nextSibling&&this.parentNode.appendChild(this)}function nc(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ic(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===El&&t.documentElement.namespaceURI===El?t.createElement(e):t.createElementNS(n,e)}}function rc(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function oc(e){var t=zl(e);return(t.local?rc:ic)(t)}function ac(){return null}function sc(){var e=this.parentNode;e&&e.removeChild(this)}function lc(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function cc(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}Ul.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var dc={},hc=null;function pc(e,t,n){return e=uc(e,t,n),function(t){var n=t.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||e.call(this,t)}}function uc(e,t,n){return function(i){var r=hc;hc=i;try{e.call(this,this.__data__,t,n)}finally{hc=r}}}function fc(e){return function(){var t=this.__on;if(t){for(var n,i=0,r=-1,o=t.length;i<o;++i)n=t[i],e.type&&n.type!==e.type||n.name!==e.name?t[++r]=n:this.removeEventListener(n.type,n.listener,n.capture);++r?t.length=r:delete this.__on}}}function gc(e,t,n){var i=dc.hasOwnProperty(e.type)?pc:uc;return function(r,o,a){var s,l=this.__on,c=i(t,o,a);if(l)for(var d=0,h=l.length;d<h;++d)if((s=l[d]).type===e.type&&s.name===e.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=n),void(s.value=t);this.addEventListener(e.type,c,n),s={type:e.type,name:e.name,value:t,listener:c,capture:n},l?l.push(s):this.__on=[s]}}function mc(e,t,n,i){var r=hc;e.sourceEvent=hc,hc=e;try{return t.apply(n,i)}finally{hc=r}}function vc(e,t,n){var i=Ol(e),r=i.CustomEvent;"function"==typeof r?r=new r(t,n):(r=i.document.createEvent("Event"),n?(r.initEvent(t,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(t,!1,!1)),e.dispatchEvent(r)}function yc(e,t){return function(){return vc(this,e,t)}}function _c(e,t){return function(){return vc(this,e,t.apply(this,arguments))}}"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(dc={mouseenter:"mouseover",mouseleave:"mouseout"}));var bc=[null];function xc(e,t){this._groups=e,this._parents=t}function wc(){return new xc([[document.documentElement]],bc)}xc.prototype=wc.prototype={constructor:xc,select:function(e){"function"!=typeof e&&(e=gl(e));for(var t=this._groups,n=t.length,i=new Array(n),r=0;r<n;++r)for(var o,a,s=t[r],l=s.length,c=i[r]=new Array(l),d=0;d<l;++d)(o=s[d])&&(a=e.call(o,o.__data__,d,s))&&("__data__"in o&&(a.__data__=o.__data__),c[d]=a);return new xc(i,this._parents)},selectAll:function(e){"function"!=typeof e&&(e=vl(e));for(var t=this._groups,n=t.length,i=[],r=[],o=0;o<n;++o)for(var a,s=t[o],l=s.length,c=0;c<l;++c)(a=s[c])&&(i.push(e.call(a,a.__data__,c,s)),r.push(a));return new xc(i,r)},filter:function(e){"function"!=typeof e&&(e=yl(e));for(var t=this._groups,n=t.length,i=new Array(n),r=0;r<n;++r)for(var o,a=t[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&e.call(o,o.__data__,c,a)&&l.push(o);return new xc(i,this._parents)},data:function(e,t){if(!e)return f=new Array(this.size()),d=-1,this.each((function(e){f[++d]=e})),f;var n,i=t?wl:xl,r=this._parents,o=this._groups;"function"!=typeof e&&(n=e,e=function(){return n});for(var a=o.length,s=new Array(a),l=new Array(a),c=new Array(a),d=0;d<a;++d){var h=r[d],p=o[d],u=p.length,f=e.call(h,h&&h.__data__,d,r),g=f.length,m=l[d]=new Array(g),v=s[d]=new Array(g);i(h,p,m,v,c[d]=new Array(u),f,t);for(var y,_,b=0,x=0;b<g;++b)if(y=m[b]){for(b>=x&&(x=b+1);!(_=v[x])&&++x<g;);y._next=_||null}}return(s=new xc(s,r))._enter=l,s._exit=c,s},enter:function(){return new xc(this._enter||this._groups.map(_l),this._parents)},exit:function(){return new xc(this._exit||this._groups.map(_l),this._parents)},join:function(e,t,n){var i=this.enter(),r=this,o=this.exit();return i="function"==typeof e?e(i):i.append(e+""),null!=t&&(r=t(r)),null==n?o.remove():n(o),i&&r?i.merge(r).order():r},merge:function(e){for(var t=this._groups,n=e._groups,i=t.length,r=n.length,o=Math.min(i,r),a=new Array(i),s=0;s<o;++s)for(var l,c=t[s],d=n[s],h=c.length,p=a[s]=new Array(h),u=0;u<h;++u)(l=c[u]||d[u])&&(p[u]=l);for(;s<i;++s)a[s]=t[s];return new xc(a,this._parents)},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var i,r=e[t],o=r.length-1,a=r[o];--o>=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=Sl);for(var n=this._groups,i=n.length,r=new Array(i),o=0;o<i;++o){for(var a,s=n[o],l=s.length,c=r[o]=new Array(l),d=0;d<l;++d)(a=s[d])&&(c[d]=a);c.sort(t)}return new xc(r,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){var e=new Array(this.size()),t=-1;return this.each((function(){e[++t]=this})),e},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var i=e[t],r=0,o=i.length;r<o;++r){var a=i[r];if(a)return a}return null},size:function(){var e=0;return this.each((function(){++e})),e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,i=t.length;n<i;++n)for(var r,o=t[n],a=0,s=o.length;a<s;++a)(r=o[a])&&e.call(r,r.__data__,a,o);return this},attr:function(e,t){var n=zl(e);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==t?n.local?Ml:kl:"function"==typeof t?n.local?Il:Nl:n.local?Tl:Al)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?Ll:"function"==typeof t?Hl:Pl)(e,t,null==n?"":n)):Rl(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?Vl:"function"==typeof t?Dl:Bl)(e,t)):this.node()[e]},classed:function(e,t){var n=Fl(e+"");if(arguments.length<2){for(var i=jl(this.node()),r=-1,o=n.length;++r<o;)if(!i.contains(n[r]))return!1;return!0}return this.each(("function"==typeof t?Wl:t?ql:Xl)(n,t))},text:function(e){return arguments.length?this.each(null==e?Kl:("function"==typeof e?Jl:Yl)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?Zl:("function"==typeof e?ec:Ql)(e)):this.node().innerHTML},raise:function(){return this.each(tc)},lower:function(){return this.each(nc)},append:function(e){var t="function"==typeof e?e:oc(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))},insert:function(e,t){var n="function"==typeof e?e:oc(e),i=null==t?ac:"function"==typeof t?t:gl(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function(){return this.each(sc)},clone:function(e){return this.select(e?cc:lc)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var i,r,o=function(e){return e.trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=o.length;if(!(arguments.length<2)){for(s=t?gc:fc,null==n&&(n=!1),i=0;i<a;++i)this.each(s(o[i],t,n));return this}var s=this.node().__on;if(s)for(var l,c=0,d=s.length;c<d;++c)for(i=0,l=s[c];i<a;++i)if((r=o[i]).type===l.type&&r.name===l.name)return l.value},dispatch:function(e,t){return this.each(("function"==typeof t?_c:yc)(e,t))}};const Sc=wc;var Ec={value:function(){}};function Cc(){for(var e,t=0,n=arguments.length,i={};t<n;++t){if(!(e=arguments[t]+"")||e in i||/[\s.]/.test(e))throw new Error("illegal type: "+e);i[e]=[]}return new zc(i)}function zc(e){this._=e}function kc(e,t){for(var n,i=0,r=e.length;i<r;++i)if((n=e[i]).name===t)return n.value}function Mc(e,t,n){for(var i=0,r=e.length;i<r;++i)if(e[i].name===t){e[i]=Ec,e=e.slice(0,i).concat(e.slice(i+1));break}return null!=n&&e.push({name:t,value:n}),e}zc.prototype=Cc.prototype={constructor:zc,on:function(e,t){var n,i,r=this._,o=(i=r,(e+"").trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");if(n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!i.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),a=-1,s=o.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++a<s;)if(n=(e=o[a]).type)r[n]=Mc(r[n],e.name,t);else if(null==t)for(n in r)r[n]=Mc(r[n],e.name,null);return this}for(;++a<s;)if((n=(e=o[a]).type)&&(n=kc(r[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new zc(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,i,r=new Array(n),o=0;o<n;++o)r[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=0,n=(i=this._[e]).length;o<n;++o)i[o].value.apply(t,r)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var i=this._[e],r=0,o=i.length;r<o;++r)i[r].value.apply(t,n)}};const Ac=Cc;var Tc,Nc,Ic=0,Oc=0,Lc=0,Pc=0,Hc=0,Rc=0,Vc="object"==typeof performance&&performance.now?performance:Date,Bc="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Dc(){return Hc||(Bc(Fc),Hc=Vc.now()+Rc)}function Fc(){Hc=0}function jc(){this._call=this._time=this._next=null}function Uc(e,t,n){var i=new jc;return i.restart(e,t,n),i}function $c(){Hc=(Pc=Vc.now())+Rc,Ic=Oc=0;try{!function(){Dc(),++Ic;for(var e,t=Tc;t;)(e=Hc-t._time)>=0&&t._call.call(null,e),t=t._next;--Ic}()}finally{Ic=0,function(){for(var e,t,n=Tc,i=1/0;n;)n._call?(i>n._time&&(i=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:Tc=t);Nc=e,qc(i)}(),Hc=0}}function Gc(){var e=Vc.now(),t=e-Pc;t>1e3&&(Rc-=t,Pc=e)}function qc(e){Ic||(Oc&&(Oc=clearTimeout(Oc)),e-Hc>24?(e<1/0&&(Oc=setTimeout($c,e-Vc.now()-Rc)),Lc&&(Lc=clearInterval(Lc))):(Lc||(Pc=Vc.now(),Lc=setInterval(Gc,1e3)),Ic=1,Bc($c)))}function Xc(e,t,n){var i=new jc;return t=null==t?0:+t,i.restart((function(n){i.stop(),e(n+t)}),t,n),i}jc.prototype=Uc.prototype={constructor:jc,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?Dc():+n)+(null==t?0:+t),this._next||Nc===this||(Nc?Nc._next=this:Tc=this,Nc=this),this._call=e,this._time=n,qc()},stop:function(){this._call&&(this._call=null,this._time=1/0,qc())}};var Wc=Ac("start","end","cancel","interrupt"),Kc=[];function Yc(e,t,n,i,r,o){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var i,r=e.__transition;function o(l){var c,d,h,p;if(1!==n.state)return s();for(c in r)if((p=r[c]).name===n.name){if(3===p.state)return Xc(o);4===p.state?(p.state=6,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[c]):+c<t&&(p.state=6,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete r[c])}if(Xc((function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(l))})),n.state=2,n.on.call("start",e,e.__data__,n.index,n.group),2===n.state){for(n.state=3,i=new Array(h=n.tween.length),c=0,d=-1;c<h;++c)(p=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(i[++d]=p);i.length=d+1}}function a(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(s),n.state=5,1),o=-1,a=i.length;++o<a;)i[o].call(e,r);5===n.state&&(n.on.call("end",e,e.__data__,n.index,n.group),s())}function s(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}r[t]=n,n.timer=Uc((function(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}),0,n.time)}(e,n,{name:t,index:i,group:r,on:Wc,tween:Kc,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function Jc(e,t){var n=Qc(e,t);if(n.state>0)throw new Error("too late; already scheduled");return n}function Zc(e,t){var n=Qc(e,t);if(n.state>3)throw new Error("too late; already running");return n}function Qc(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function ed(e,t){var n,i,r,o=e.__transition,a=!0;if(o){for(r in t=null==t?null:t+"",o)(n=o[r]).name===t?(i=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(i?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete o[r]):a=!1;a&&delete e.__transition}}function td(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var nd,id,rd,od,ad=180/Math.PI,sd={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ld(e,t,n,i,r,o){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*i)&&(n-=e*l,i-=t*l),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,l/=s),e*i<t*n&&(e=-e,t=-t,l=-l,a=-a),{translateX:r,translateY:o,rotate:Math.atan2(t,e)*ad,skewX:Math.atan(l)*ad,scaleX:a,scaleY:s}}function cd(e,t,n,i){function r(e){return e.length?e.pop()+" ":""}return function(o,a){var s=[],l=[];return o=e(o),a=e(a),function(e,i,r,o,a,s){if(e!==r||i!==o){var l=a.push("translate(",null,t,null,n);s.push({i:l-4,x:td(e,r)},{i:l-2,x:td(i,o)})}else(r||o)&&a.push("translate("+r+t+o+n)}(o.translateX,o.translateY,a.translateX,a.translateY,s,l),function(e,t,n,o){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),o.push({i:n.push(r(n)+"rotate(",null,i)-2,x:td(e,t)})):t&&n.push(r(n)+"rotate("+t+i)}(o.rotate,a.rotate,s,l),function(e,t,n,o){e!==t?o.push({i:n.push(r(n)+"skewX(",null,i)-2,x:td(e,t)}):t&&n.push(r(n)+"skewX("+t+i)}(o.skewX,a.skewX,s,l),function(e,t,n,i,o,a){if(e!==n||t!==i){var s=o.push(r(o)+"scale(",null,",",null,")");a.push({i:s-4,x:td(e,n)},{i:s-2,x:td(t,i)})}else 1===n&&1===i||o.push(r(o)+"scale("+n+","+i+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(e){for(var t,n=-1,i=l.length;++n<i;)s[(t=l[n]).i]=t.x(e);return s.join("")}}}var dd=cd((function(e){return"none"===e?sd:(nd||(nd=document.createElement("DIV"),id=document.documentElement,rd=document.defaultView),nd.style.transform=e,e=rd.getComputedStyle(id.appendChild(nd),null).getPropertyValue("transform"),id.removeChild(nd),ld(+(e=e.slice(7,-1).split(","))[0],+e[1],+e[2],+e[3],+e[4],+e[5]))}),"px, ","px)","deg)"),hd=cd((function(e){return null==e?sd:(od||(od=document.createElementNS("http://www.w3.org/2000/svg","g")),od.setAttribute("transform",e),(e=od.transform.baseVal.consolidate())?ld((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):sd)}),", ",")",")");function pd(e,t){var n,i;return function(){var r=Zc(this,e),o=r.tween;if(o!==n)for(var a=0,s=(i=n=o).length;a<s;++a)if(i[a].name===t){(i=i.slice()).splice(a,1);break}r.tween=i}}function ud(e,t,n){var i,r;if("function"!=typeof n)throw new Error;return function(){var o=Zc(this,e),a=o.tween;if(a!==i){r=(i=a).slice();for(var s={name:t,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===t){r[l]=s;break}l===c&&r.push(s)}o.tween=r}}function fd(e,t,n){var i=e._id;return e.each((function(){var e=Zc(this,i);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return Qc(e,i).value[t]}}function gd(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function md(e,t){var n=Object.create(e.prototype);for(var i in t)n[i]=t[i];return n}function vd(){}var yd=.7,_d=1/yd,bd="\\s*([+-]?\\d+)\\s*",xd="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",wd="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Sd=/^#([0-9a-f]{3,8})$/,Ed=new RegExp("^rgb\\("+[bd,bd,bd]+"\\)$"),Cd=new RegExp("^rgb\\("+[wd,wd,wd]+"\\)$"),zd=new RegExp("^rgba\\("+[bd,bd,bd,xd]+"\\)$"),kd=new RegExp("^rgba\\("+[wd,wd,wd,xd]+"\\)$"),Md=new RegExp("^hsl\\("+[xd,wd,wd]+"\\)$"),Ad=new RegExp("^hsla\\("+[xd,wd,wd,xd]+"\\)$"),Td={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Nd(){return this.rgb().formatHex()}function Id(){return this.rgb().formatRgb()}function Od(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Sd.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?Ld(t):3===n?new Rd(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?Pd(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?Pd(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Ed.exec(e))?new Rd(t[1],t[2],t[3],1):(t=Cd.exec(e))?new Rd(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=zd.exec(e))?Pd(t[1],t[2],t[3],t[4]):(t=kd.exec(e))?Pd(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Md.exec(e))?Fd(t[1],t[2]/100,t[3]/100,1):(t=Ad.exec(e))?Fd(t[1],t[2]/100,t[3]/100,t[4]):Td.hasOwnProperty(e)?Ld(Td[e]):"transparent"===e?new Rd(NaN,NaN,NaN,0):null}function Ld(e){return new Rd(e>>16&255,e>>8&255,255&e,1)}function Pd(e,t,n,i){return i<=0&&(e=t=n=NaN),new Rd(e,t,n,i)}function Hd(e,t,n,i){return 1===arguments.length?((r=e)instanceof vd||(r=Od(r)),r?new Rd((r=r.rgb()).r,r.g,r.b,r.opacity):new Rd):new Rd(e,t,n,null==i?1:i);var r}function Rd(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}function Vd(){return"#"+Dd(this.r)+Dd(this.g)+Dd(this.b)}function Bd(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function Dd(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function Fd(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $d(e,t,n,i)}function jd(e){if(e instanceof $d)return new $d(e.h,e.s,e.l,e.opacity);if(e instanceof vd||(e=Od(e)),!e)return new $d;if(e instanceof $d)return e;var t=(e=e.rgb()).r/255,n=e.g/255,i=e.b/255,r=Math.min(t,n,i),o=Math.max(t,n,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=t===o?(n-i)/s+6*(n<i):n===o?(i-t)/s+2:(t-n)/s+4,s/=l<.5?o+r:2-o-r,a*=60):s=l>0&&l<1?0:a,new $d(a,s,l,e.opacity)}function Ud(e,t,n,i){return 1===arguments.length?jd(e):new $d(e,t,n,null==i?1:i)}function $d(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}function Gd(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function qd(e,t,n,i,r){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*i+a*r)/6}function Xd(e){return function(){return e}}function Wd(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Xd(isNaN(e)?t:e)}gd(vd,Od,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:Nd,formatHex:Nd,formatHsl:function(){return jd(this).formatHsl()},formatRgb:Id,toString:Id}),gd(Rd,Hd,md(vd,{brighter:function(e){return e=null==e?_d:Math.pow(_d,e),new Rd(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?yd:Math.pow(yd,e),new Rd(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Vd,formatHex:Vd,formatRgb:Bd,toString:Bd})),gd($d,Ud,md(vd,{brighter:function(e){return e=null==e?_d:Math.pow(_d,e),new $d(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?yd:Math.pow(yd,e),new $d(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*t,r=2*n-i;return new Rd(Gd(e>=240?e-240:e+120,r,i),Gd(e,r,i),Gd(e<120?e+240:e-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));const Kd=function e(t){var n=function(e){return 1==(e=+e)?Wd:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(i){return Math.pow(e+i*t,n)}}(t,n,e):Xd(isNaN(t)?n:t)}}(t);function i(e,t){var i=n((e=Hd(e)).r,(t=Hd(t)).r),r=n(e.g,t.g),o=n(e.b,t.b),a=Wd(e.opacity,t.opacity);return function(t){return e.r=i(t),e.g=r(t),e.b=o(t),e.opacity=a(t),e+""}}return i.gamma=e,i}(1);function Yd(e){return function(t){var n,i,r=t.length,o=new Array(r),a=new Array(r),s=new Array(r);for(n=0;n<r;++n)i=Hd(t[n]),o[n]=i.r||0,a[n]=i.g||0,s[n]=i.b||0;return o=e(o),a=e(a),s=e(s),i.opacity=1,function(e){return i.r=o(e),i.g=a(e),i.b=s(e),i+""}}}Yd((function(e){var t=e.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),r=e[i],o=e[i+1],a=i>0?e[i-1]:2*r-o,s=i<t-1?e[i+2]:2*o-r;return qd((n-i/t)*t,a,r,o,s)}})),Yd((function(e){var t=e.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*t),r=e[(i+t-1)%t],o=e[i%t],a=e[(i+1)%t],s=e[(i+2)%t];return qd((n-i/t)*t,r,o,a,s)}}));var Jd=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Zd=new RegExp(Jd.source,"g");function Qd(e,t){var n,i,r,o=Jd.lastIndex=Zd.lastIndex=0,a=-1,s=[],l=[];for(e+="",t+="";(n=Jd.exec(e))&&(i=Zd.exec(t));)(r=i.index)>o&&(r=t.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:td(n,i)})),o=Zd.lastIndex;return o<t.length&&(r=t.slice(o),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?function(e){return function(t){return e(t)+""}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var n,i=0;i<t;++i)s[(n=l[i]).i]=n.x(e);return s.join("")})}function eh(e,t){var n;return("number"==typeof t?td:t instanceof Od?Kd:(n=Od(t))?(t=n,Kd):Qd)(e,t)}function th(e){return function(){this.removeAttribute(e)}}function nh(e){return function(){this.removeAttributeNS(e.space,e.local)}}function ih(e,t,n){var i,r,o=n+"";return function(){var a=this.getAttribute(e);return a===o?null:a===i?r:r=t(i=a,n)}}function rh(e,t,n){var i,r,o=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===o?null:a===i?r:r=t(i=a,n)}}function oh(e,t,n){var i,r,o;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttribute(e))===(s=l+"")?null:a===i&&s===r?o:(r=s,o=t(i=a,l));this.removeAttribute(e)}}function ah(e,t,n){var i,r,o;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttributeNS(e.space,e.local))===(s=l+"")?null:a===i&&s===r?o:(r=s,o=t(i=a,l));this.removeAttributeNS(e.space,e.local)}}function sh(e,t){var n,i;function r(){var r=t.apply(this,arguments);return r!==i&&(n=(i=r)&&function(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}(e,r)),n}return r._value=t,r}function lh(e,t){var n,i;function r(){var r=t.apply(this,arguments);return r!==i&&(n=(i=r)&&function(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}(e,r)),n}return r._value=t,r}function ch(e,t){return function(){Jc(this,e).delay=+t.apply(this,arguments)}}function dh(e,t){return t=+t,function(){Jc(this,e).delay=t}}function hh(e,t){return function(){Zc(this,e).duration=+t.apply(this,arguments)}}function ph(e,t){return t=+t,function(){Zc(this,e).duration=t}}var uh=Sc.prototype.constructor;function fh(e){return function(){this.style.removeProperty(e)}}var gh=0;function mh(e,t,n,i){this._groups=e,this._parents=t,this._name=n,this._id=i}function vh(){return++gh}var yh=Sc.prototype;mh.prototype=function(e){return Sc().transition(e)}.prototype={constructor:mh,select:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=gl(e));for(var i=this._groups,r=i.length,o=new Array(r),a=0;a<r;++a)for(var s,l,c=i[a],d=c.length,h=o[a]=new Array(d),p=0;p<d;++p)(s=c[p])&&(l=e.call(s,s.__data__,p,c))&&("__data__"in s&&(l.__data__=s.__data__),h[p]=l,Yc(h[p],t,n,p,h,Qc(s,n)));return new mh(o,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=vl(e));for(var i=this._groups,r=i.length,o=[],a=[],s=0;s<r;++s)for(var l,c=i[s],d=c.length,h=0;h<d;++h)if(l=c[h]){for(var p,u=e.call(l,l.__data__,h,c),f=Qc(l,n),g=0,m=u.length;g<m;++g)(p=u[g])&&Yc(p,t,n,g,u,f);o.push(u),a.push(l)}return new mh(o,a,t,n)},filter:function(e){"function"!=typeof e&&(e=yl(e));for(var t=this._groups,n=t.length,i=new Array(n),r=0;r<n;++r)for(var o,a=t[r],s=a.length,l=i[r]=[],c=0;c<s;++c)(o=a[c])&&e.call(o,o.__data__,c,a)&&l.push(o);return new mh(i,this._parents,this._name,this._id)},merge:function(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,i=t.length,r=n.length,o=Math.min(i,r),a=new Array(i),s=0;s<o;++s)for(var l,c=t[s],d=n[s],h=c.length,p=a[s]=new Array(h),u=0;u<h;++u)(l=c[u]||d[u])&&(p[u]=l);for(;s<i;++s)a[s]=t[s];return new mh(a,this._parents,this._name,this._id)},selection:function(){return new uh(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=vh(),i=this._groups,r=i.length,o=0;o<r;++o)for(var a,s=i[o],l=s.length,c=0;c<l;++c)if(a=s[c]){var d=Qc(a,t);Yc(a,e,n,c,s,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new mh(i,this._parents,e,n)},call:yh.call,nodes:yh.nodes,node:yh.node,size:yh.size,empty:yh.empty,each:yh.each,on:function(e,t){var n=this._id;return arguments.length<2?Qc(this.node(),n).on.on(e):this.each(function(e,t,n){var i,r,o=function(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?Jc:Zc;return function(){var a=o(this,e),s=a.on;s!==i&&(r=(i=s).copy()).on(t,n),a.on=r}}(n,e,t))},attr:function(e,t){var n=zl(e),i="transform"===n?hd:eh;return this.attrTween(e,"function"==typeof t?(n.local?ah:oh)(n,i,fd(this,"attr."+e,t)):null==t?(n.local?nh:th)(n):(n.local?rh:ih)(n,i,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var i=zl(e);return this.tween(n,(i.local?sh:lh)(i,t))},style:function(e,t,n){var i="transform"==(e+="")?dd:eh;return null==t?this.styleTween(e,function(e,t){var n,i,r;return function(){var o=Rl(this,e),a=(this.style.removeProperty(e),Rl(this,e));return o===a?null:o===n&&a===i?r:r=t(n=o,i=a)}}(e,i)).on("end.style."+e,fh(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var i,r,o;return function(){var a=Rl(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=Rl(this,e)),a===l?null:a===i&&l===r?o:(r=l,o=t(i=a,s))}}(e,i,fd(this,"style."+e,t))).each(function(e,t){var n,i,r,o,a="style."+t,s="end."+a;return function(){var l=Zc(this,e),c=l.on,d=null==l.value[a]?o||(o=fh(t)):void 0;c===n&&r===d||(i=(n=c).copy()).on(s,r=d),l.on=i}}(this._id,e)):this.styleTween(e,function(e,t,n){var i,r,o=n+"";return function(){var a=Rl(this,e);return a===o?null:a===i?r:r=t(i=a,n)}}(e,i,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var i="style."+(e+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==t)return this.tween(i,null);if("function"!=typeof t)throw new Error;return this.tween(i,function(e,t,n){var i,r;function o(){var o=t.apply(this,arguments);return o!==r&&(i=(r=o)&&function(e,t,n){return function(i){this.style.setProperty(e,t.call(this,i),n)}}(e,o,n)),i}return o._value=t,o}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"==typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(fd(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,function(e){var t,n;function i(){var i=e.apply(this,arguments);return i!==n&&(t=(n=i)&&function(e){return function(t){this.textContent=e.call(this,t)}}(i)),t}return i._value=e,i}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var i,r=Qc(this.node(),n).tween,o=0,a=r.length;o<a;++o)if((i=r[o]).name===e)return i.value;return null}return this.each((null==t?pd:ud)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?ch:dh)(t,e)):Qc(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?hh:ph)(t,e)):Qc(this.node(),t).duration},ease:function(e){var t=this._id;return arguments.length?this.each(function(e,t){if("function"!=typeof t)throw new Error;return function(){Zc(this,e).ease=t}}(t,e)):Qc(this.node(),t).ease},end:function(){var e,t,n=this,i=n._id,r=n.size();return new Promise((function(o,a){var s={value:a},l={value:function(){0==--r&&o()}};n.each((function(){var n=Zc(this,i),r=n.on;r!==e&&((t=(e=r).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(l)),n.on=t}))}))}};var _h={time:null,delay:0,duration:250,ease:function(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}};function bh(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))return _h.time=Dc(),_h;return n}function xh(e){return{type:e}}Sc.prototype.interrupt=function(e){return this.each((function(){ed(this,e)}))},Sc.prototype.transition=function(e){var t,n;e instanceof mh?(t=e._id,e=e._name):(t=vh(),(n=_h).time=Dc(),e=null==e?null:e+"");for(var i=this._groups,r=i.length,o=0;o<r;++o)for(var a,s=i[o],l=s.length,c=0;c<l;++c)(a=s[c])&&Yc(a,e,t,c,s,n||bh(a,t));return new mh(i,this._parents,e,t)},["w","e"].map(xh),["n","s"].map(xh),["n","w","e","s","nw","ne","sw","se"].map(xh),Math.cos,Math.sin,Math.PI,Math.max,Array.prototype.slice;var wh="$";function Sh(){}function Eh(e,t){var n=new Sh;if(e instanceof Sh)e.each((function(e,t){n.set(t,e)}));else if(Array.isArray(e)){var i,r=-1,o=e.length;if(null==t)for(;++r<o;)n.set(r,e[r]);else for(;++r<o;)n.set(t(i=e[r],r,e),i)}else if(e)for(var a in e)n.set(a,e[a]);return n}Sh.prototype=Eh.prototype={constructor:Sh,has:function(e){return wh+e in this},get:function(e){return this[wh+e]},set:function(e,t){return this[wh+e]=t,this},remove:function(e){var t=wh+e;return t in this&&delete this[t]},clear:function(){for(var e in this)e[0]===wh&&delete this[e]},keys:function(){var e=[];for(var t in this)t[0]===wh&&e.push(t.slice(1));return e},values:function(){var e=[];for(var t in this)t[0]===wh&&e.push(this[t]);return e},entries:function(){var e=[];for(var t in this)t[0]===wh&&e.push({key:t.slice(1),value:this[t]});return e},size:function(){var e=0;for(var t in this)t[0]===wh&&++e;return e},empty:function(){for(var e in this)if(e[0]===wh)return!1;return!0},each:function(e){for(var t in this)t[0]===wh&&e(this[t],t.slice(1),this)}};const Ch=Eh;function zh(){}var kh=Ch.prototype;function Mh(){for(var e,t=hc;e=t.sourceEvent;)t=e;return t}function Ah(e,t){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var i=n.createSVGPoint();return i.x=t.clientX,i.y=t.clientY,[(i=i.matrixTransform(e.getScreenCTM().inverse())).x,i.y]}var r=e.getBoundingClientRect();return[t.clientX-r.left-e.clientLeft,t.clientY-r.top-e.clientTop]}function Th(e){var t=Mh();return t.changedTouches&&(t=t.changedTouches[0]),Ah(e,t)}function Nh(e){return"string"==typeof e?new xc([[document.querySelector(e)]],[document.documentElement]):new xc([[e]],bc)}function Ih(e,t,n){arguments.length<3&&(n=t,t=Mh().changedTouches);for(var i,r=0,o=t?t.length:0;r<o;++r)if((i=t[r]).identifier===n)return Ah(e,i);return null}function Oh(){hc.stopImmediatePropagation()}function Lh(){hc.preventDefault(),hc.stopImmediatePropagation()}function Ph(e){var t=e.document.documentElement,n=Nh(e).on("dragstart.drag",Lh,!0);"onselectstart"in t?n.on("selectstart.drag",Lh,!0):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Hh(e,t){var n=e.document.documentElement,i=Nh(e).on("dragstart.drag",null);t&&(i.on("click.drag",Lh,!0),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in n?i.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function Rh(e){return function(){return e}}function Vh(e,t,n,i,r,o,a,s,l,c){this.target=e,this.type=t,this.subject=n,this.identifier=i,this.active=r,this.x=o,this.y=a,this.dx=s,this.dy=l,this._=c}function Bh(){return!hc.ctrlKey&&!hc.button}function Dh(){return this.parentNode}function Fh(e){return null==e?{x:hc.x,y:hc.y}:e}function jh(){return navigator.maxTouchPoints||"ontouchstart"in this}function Uh(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,i=e.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+e.slice(n+1)]}function $h(e){return(e=Uh(Math.abs(e)))?e[1]:NaN}zh.prototype=function(e,t){var n=new zh;if(e instanceof zh)e.each((function(e){n.add(e)}));else if(e){var i=-1,r=e.length;if(null==t)for(;++i<r;)n.add(e[i]);else for(;++i<r;)n.add(t(e[i],i,e))}return n}.prototype={constructor:zh,has:kh.has,add:function(e){return this[wh+(e+="")]=e,this},remove:kh.remove,clear:kh.clear,values:kh.keys,size:kh.size,empty:kh.empty,each:kh.each},Array.prototype.slice,Vh.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e},Math.PI,Math.sqrt(5);var Gh,qh=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Xh(e){if(!(t=qh.exec(e)))throw new Error("invalid format: "+e);var t;return new Wh({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function Wh(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function Kh(e,t){var n=Uh(e,t);if(!n)return e+"";var i=n[0],r=n[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}Xh.prototype=Wh.prototype,Wh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const Yh={"%":function(e,t){return(100*e).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return Kh(100*e,t)},r:Kh,s:function(e,t){var n=Uh(e,t);if(!n)return e+"";var i=n[0],r=n[1],o=r-(Gh=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+Uh(e,Math.max(0,t+o-1))[0]},X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function Jh(e){return e}var Zh,Qh,ep,tp=Array.prototype.map,np=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ip(e,t){var n,i=t?t.length:0,r=e?Math.min(i,e.length):0,o=new Array(r),a=new Array(i);for(n=0;n<r;++n)o[n]=sp(e[n],t[n]);for(;n<i;++n)a[n]=t[n];return function(e){for(n=0;n<r;++n)a[n]=o[n](e);return a}}function rp(e,t){var n=new Date;return e=+e,t=+t,function(i){return n.setTime(e*(1-i)+t*i),n}}function op(e,t){var n,i={},r={};for(n in null!==e&&"object"==typeof e||(e={}),null!==t&&"object"==typeof t||(t={}),t)n in e?i[n]=sp(e[n],t[n]):r[n]=t[n];return function(e){for(n in i)r[n]=i[n](e);return r}}function ap(e,t){t||(t=[]);var n,i=e?Math.min(t.length,e.length):0,r=t.slice();return function(o){for(n=0;n<i;++n)r[n]=e[n]*(1-o)+t[n]*o;return r}}function sp(e,t){var n,i,r=typeof t;return null==t||"boolean"===r?Xd(t):("number"===r?td:"string"===r?(n=Od(t))?(t=n,Kd):Qd:t instanceof Od?Kd:t instanceof Date?rp:(i=t,!ArrayBuffer.isView(i)||i instanceof DataView?Array.isArray(t)?ip:"function"!=typeof t.valueOf&&"function"!=typeof t.toString||isNaN(t)?op:td:ap))(e,t)}function lp(){return Math.random()}Zh=function(e){var t,n,i=void 0===e.grouping||void 0===e.thousands?Jh:(t=tp.call(e.grouping,Number),n=e.thousands+"",function(e,i){for(var r=e.length,o=[],a=0,s=t[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(e.substring(r-=s,r+s)),!((l+=s+1)>i));)s=t[a=(a+1)%t.length];return o.reverse().join(n)}),r=void 0===e.currency?"":e.currency[0]+"",o=void 0===e.currency?"":e.currency[1]+"",a=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?Jh:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(tp.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",c=void 0===e.minus?"-":e.minus+"",d=void 0===e.nan?"NaN":e.nan+"";function h(e){var t=(e=Xh(e)).fill,n=e.align,h=e.sign,p=e.symbol,u=e.zero,f=e.width,g=e.comma,m=e.precision,v=e.trim,y=e.type;"n"===y?(g=!0,y="g"):Yh[y]||(void 0===m&&(m=12),v=!0,y="g"),(u||"0"===t&&"="===n)&&(u=!0,t="0",n="=");var _="$"===p?r:"#"===p&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",b="$"===p?o:/[%p]/.test(y)?l:"",x=Yh[y],w=/[defgprs%]/.test(y);function S(e){var r,o,l,p=_,S=b;if("c"===y)S=x(e)+S,e="";else{var E=(e=+e)<0||1/e<0;if(e=isNaN(e)?d:x(Math.abs(e),m),v&&(e=function(e){e:for(var t,n=e.length,i=1,r=-1;i<n;++i)switch(e[i]){case".":r=t=i;break;case"0":0===r&&(r=i),t=i;break;default:if(!+e[i])break e;r>0&&(r=0)}return r>0?e.slice(0,r)+e.slice(t+1):e}(e)),E&&0==+e&&"+"!==h&&(E=!1),p=(E?"("===h?h:c:"-"===h||"("===h?"":h)+p,S=("s"===y?np[8+Gh/3]:"")+S+(E&&"("===h?")":""),w)for(r=-1,o=e.length;++r<o;)if(48>(l=e.charCodeAt(r))||l>57){S=(46===l?a+e.slice(r+1):e.slice(r))+S,e=e.slice(0,r);break}}g&&!u&&(e=i(e,1/0));var C=p.length+e.length+S.length,z=C<f?new Array(f-C+1).join(t):"";switch(g&&u&&(e=i(z+e,z.length?f-S.length:1/0),z=""),n){case"<":e=p+e+S+z;break;case"=":e=p+z+e+S;break;case"^":e=z.slice(0,C=z.length>>1)+p+e+S+z.slice(C);break;default:e=z+p+e+S}return s(e)}return m=void 0===m?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),S.toString=function(){return e+""},S}return{format:h,formatPrefix:function(e,t){var n=h(((e=Xh(e)).type="f",e)),i=3*Math.max(-8,Math.min(8,Math.floor($h(t)/3))),r=Math.pow(10,-i),o=np[8+i/3];return function(e){return n(r*e)+o}}}}({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),Qh=Zh.format,ep=Zh.formatPrefix,function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,1===arguments.length?(n=e,e=0):n-=e,function(){return t()*n+e}}return n.source=e,n}(lp);const cp=function e(t){function n(e,n){var i,r;return e=null==e?0:+e,n=null==n?1:+n,function(){var o;if(null!=i)o=i,i=null;else do{i=2*t()-1,o=2*t()-1,r=i*i+o*o}while(!r||r>1);return e+n*o*Math.sqrt(-2*Math.log(r)/r)}}return n.source=e,n}(lp),dp=(function e(t){function n(){var e=cp.source(t).apply(this,arguments);return function(){return Math.exp(e())}}return n.source=e,n}(lp),function e(t){function n(e){return function(){for(var n=0,i=0;i<e;++i)n+=t();return n}}return n.source=e,n}(lp));(function e(t){function n(e){var n=dp.source(t)(e);return function(){return n()/e}}return n.source=e,n})(lp),function e(t){function n(e){return function(){return-Math.log(1-t())/e}}return n.source=e,n}(lp);var hp=Array.prototype,pp=hp.map,up=hp.slice;function fp(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}var gp={name:"implicit"};function mp(){var e=Ch(),t=[],n=[],i=gp;function r(r){var o=r+"",a=e.get(o);if(!a){if(i!==gp)return i;e.set(o,a=t.push(r))}return n[(a-1)%n.length]}return r.domain=function(n){if(!arguments.length)return t.slice();t=[],e=Ch();for(var i,o,a=-1,s=n.length;++a<s;)e.has(o=(i=n[a])+"")||e.set(o,t.push(i));return r},r.range=function(e){return arguments.length?(n=up.call(e),r):n.slice()},r.unknown=function(e){return arguments.length?(i=e,r):i},r.copy=function(){return mp(t,n).unknown(i)},fp.apply(r,arguments),r}function vp(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function yp(e){return+e}var _p=[0,1];function bp(e){return e}function xp(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:(n=isNaN(t)?NaN:.5,function(){return n});var n}function wp(e){var t,n=e[0],i=e[e.length-1];return n>i&&(t=n,n=i,i=t),function(e){return Math.max(n,Math.min(i,e))}}function Sp(e,t,n){var i=e[0],r=e[1],o=t[0],a=t[1];return r<i?(i=xp(r,i),o=n(a,o)):(i=xp(i,r),o=n(o,a)),function(e){return o(i(e))}}function Ep(e,t,n){var i=Math.min(e.length,t.length)-1,r=new Array(i),o=new Array(i),a=-1;for(e[i]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<i;)r[a]=xp(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(t){var n=al(e,t,1,i)-1;return o[n](r[n](t))}}function Cp(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function zp(){var e,t,n,i,r,o,a=_p,s=_p,l=sp,c=bp;function d(){return i=Math.min(a.length,s.length)>2?Ep:Sp,r=o=null,h}function h(t){return isNaN(t=+t)?n:(r||(r=i(a.map(e),s,l)))(e(c(t)))}return h.invert=function(n){return c(t((o||(o=i(s,a.map(e),td)))(n)))},h.domain=function(e){return arguments.length?(a=pp.call(e,yp),c===bp||(c=wp(a)),d()):a.slice()},h.range=function(e){return arguments.length?(s=up.call(e),d()):s.slice()},h.rangeRound=function(e){return s=up.call(e),l=vp,d()},h.clamp=function(e){return arguments.length?(c=e?wp(a):bp,h):c!==bp},h.interpolate=function(e){return arguments.length?(l=e,d()):l},h.unknown=function(e){return arguments.length?(n=e,h):n},function(n,i){return e=n,t=i,d()}}function kp(e){var t=e.domain;return e.ticks=function(e){var n=t();return function(e,t,n){var i,r,o,a,s=-1;if(n=+n,(e=+e)==(t=+t)&&n>0)return[e];if((i=t<e)&&(r=e,e=t,t=r),0===(a=hl(e,t,n))||!isFinite(a))return[];if(a>0)for(e=Math.ceil(e/a),t=Math.floor(t/a),o=new Array(r=Math.ceil(t-e+1));++s<r;)o[s]=(e+s)*a;else for(e=Math.floor(e*a),t=Math.ceil(t*a),o=new Array(r=Math.ceil(e-t+1));++s<r;)o[s]=(e-s)/a;return i&&o.reverse(),o}(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var i=t();return function(e,t,n,i){var r,o=function(e,t,n){var i=Math.abs(t-e)/Math.max(0,n),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=ll?r*=10:o>=cl?r*=5:o>=dl&&(r*=2),t<e?-r:r}(e,t,n);switch((i=Xh(null==i?",f":i)).type){case"s":var a=Math.max(Math.abs(e),Math.abs(t));return null!=i.precision||isNaN(r=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor($h(t)/3)))-$h(Math.abs(e)))}(o,a))||(i.precision=r),ep(i,a);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(r=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,$h(t)-$h(e))+1}(o,Math.max(Math.abs(e),Math.abs(t))))||(i.precision=r-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(r=function(e){return Math.max(0,-$h(Math.abs(e)))}(o))||(i.precision=r-2*("%"===i.type))}return Qh(i)}(i[0],i[i.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var i,r=t(),o=0,a=r.length-1,s=r[o],l=r[a];return l<s&&(i=s,s=l,l=i,i=o,o=a,a=i),(i=hl(s,l,n))>0?i=hl(s=Math.floor(s/i)*i,l=Math.ceil(l/i)*i,n):i<0&&(i=hl(s=Math.ceil(s*i)/i,l=Math.floor(l*i)/i,n)),i>0?(r[o]=Math.floor(s/i)*i,r[a]=Math.ceil(l/i)*i,t(r)):i<0&&(r[o]=Math.ceil(s*i)/i,r[a]=Math.floor(l*i)/i,t(r)),e},e}function Mp(){var e=function(e,t){return zp()(e,t)}(bp,bp);return e.copy=function(){return Cp(e,Mp())},fp.apply(e,arguments),kp(e)}function Ap(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Tp(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Np(e){return e<0?-e*e:e*e}var Ip=Math.PI,Op=2*Ip,Lp=1e-6,Pp=Op-Lp;function Hp(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Rp(){return new Hp}Hp.prototype=Rp.prototype={constructor:Hp,moveTo:function(e,t){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(e,t){this._+="L"+(this._x1=+e)+","+(this._y1=+t)},quadraticCurveTo:function(e,t,n,i){this._+="Q"+ +e+","+ +t+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(e,t,n,i,r,o){this._+="C"+ +e+","+ +t+","+ +n+","+ +i+","+(this._x1=+r)+","+(this._y1=+o)},arcTo:function(e,t,n,i,r){e=+e,t=+t,n=+n,i=+i,r=+r;var o=this._x1,a=this._y1,s=n-e,l=i-t,c=o-e,d=a-t,h=c*c+d*d;if(r<0)throw new Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=e)+","+(this._y1=t);else if(h>Lp)if(Math.abs(d*s-l*c)>Lp&&r){var p=n-o,u=i-a,f=s*s+l*l,g=p*p+u*u,m=Math.sqrt(f),v=Math.sqrt(h),y=r*Math.tan((Ip-Math.acos((f+h-g)/(2*m*v)))/2),_=y/v,b=y/m;Math.abs(_-1)>Lp&&(this._+="L"+(e+_*c)+","+(t+_*d)),this._+="A"+r+","+r+",0,0,"+ +(d*p>c*u)+","+(this._x1=e+b*s)+","+(this._y1=t+b*l)}else this._+="L"+(this._x1=e)+","+(this._y1=t)},arc:function(e,t,n,i,r,o){e=+e,t=+t,o=!!o;var a=(n=+n)*Math.cos(i),s=n*Math.sin(i),l=e+a,c=t+s,d=1^o,h=o?i-r:r-i;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>Lp||Math.abs(this._y1-c)>Lp)&&(this._+="L"+l+","+c),n&&(h<0&&(h=h%Op+Op),h>Pp?this._+="A"+n+","+n+",0,1,"+d+","+(e-a)+","+(t-s)+"A"+n+","+n+",0,1,"+d+","+(this._x1=l)+","+(this._y1=c):h>Lp&&(this._+="A"+n+","+n+",0,"+ +(h>=Ip)+","+d+","+(this._x1=e+n*Math.cos(r))+","+(this._y1=t+n*Math.sin(r))))},rect:function(e,t,n,i){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};const Vp=Rp;function Bp(e){return function(){return e}}function Dp(e){this._context=e}function Fp(e){return new Dp(e)}function jp(e){return e[0]}function Up(e){return e[1]}function $p(){var e=jp,t=Up,n=Bp(!0),i=null,r=Fp,o=null;function a(a){var s,l,c,d=a.length,h=!1;for(null==i&&(o=r(c=Vp())),s=0;s<=d;++s)!(s<d&&n(l=a[s],s,a))===h&&((h=!h)?o.lineStart():o.lineEnd()),h&&o.point(+e(l,s,a),+t(l,s,a));if(c)return o=null,c+""||null}return a.x=function(t){return arguments.length?(e="function"==typeof t?t:Bp(+t),a):e},a.y=function(e){return arguments.length?(t="function"==typeof e?e:Bp(+e),a):t},a.defined=function(e){return arguments.length?(n="function"==typeof e?e:Bp(!!e),a):n},a.curve=function(e){return arguments.length?(r=e,null!=i&&(o=r(i)),a):r},a.context=function(e){return arguments.length?(null==e?i=o=null:o=r(i=e),a):i},a}function Gp(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function qp(e){this._context=e}function Xp(){this._=null}function Wp(e){e.U=e.C=e.L=e.R=e.P=e.N=null}function Kp(e,t){var n=t,i=t.R,r=n.U;r?r.L===n?r.L=i:r.R=i:e._=i,i.U=r,n.U=i,n.R=i.L,n.R&&(n.R.U=n),i.L=n}function Yp(e,t){var n=t,i=t.L,r=n.U;r?r.L===n?r.L=i:r.R=i:e._=i,i.U=r,n.U=i,n.L=i.R,n.L&&(n.L.U=n),i.R=n}function Jp(e){for(;e.L;)e=e.L;return e}Dp.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}},qp.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Gp(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Gp(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},Xp.prototype={constructor:Xp,insert:function(e,t){var n,i,r;if(e){if(t.P=e,t.N=e.N,e.N&&(e.N.P=t),e.N=t,e.R){for(e=e.R;e.L;)e=e.L;e.L=t}else e.R=t;n=e}else this._?(e=Jp(this._),t.P=null,t.N=e,e.P=e.L=t,n=e):(t.P=t.N=null,this._=t,n=null);for(t.L=t.R=null,t.U=n,t.C=!0,e=t;n&&n.C;)n===(i=n.U).L?(r=i.R)&&r.C?(n.C=r.C=!1,i.C=!0,e=i):(e===n.R&&(Kp(this,n),n=(e=n).U),n.C=!1,i.C=!0,Yp(this,i)):(r=i.L)&&r.C?(n.C=r.C=!1,i.C=!0,e=i):(e===n.L&&(Yp(this,n),n=(e=n).U),n.C=!1,i.C=!0,Kp(this,i)),n=e.U;this._.C=!1},remove:function(e){e.N&&(e.N.P=e.P),e.P&&(e.P.N=e.N),e.N=e.P=null;var t,n,i,r=e.U,o=e.L,a=e.R;if(n=o?a?Jp(a):o:a,r?r.L===e?r.L=n:r.R=n:this._=n,o&&a?(i=n.C,n.C=e.C,n.L=o,o.U=n,n!==a?(r=n.U,n.U=e.U,e=n.R,r.L=e,n.R=a,a.U=n):(n.U=r,r=n,e=n.R)):(i=e.C,e=n),e&&(e.U=r),!i)if(e&&e.C)e.C=!1;else{do{if(e===this._)break;if(e===r.L){if((t=r.R).C&&(t.C=!1,r.C=!0,Kp(this,r),t=r.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,Yp(this,t),t=r.R),t.C=r.C,r.C=t.R.C=!1,Kp(this,r),e=this._;break}}else if((t=r.L).C&&(t.C=!1,r.C=!0,Yp(this,r),t=r.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,Kp(this,t),t=r.L),t.C=r.C,r.C=t.L.C=!1,Yp(this,r),e=this._;break}t.C=!0,e=r,r=r.U}while(!e.C);e&&(e.C=!1)}}};const Zp=Xp;function Qp(e,t,n,i){var r=[null,null],o=Su.push(r)-1;return r.left=e,r.right=t,n&&tu(r,e,t,n),i&&tu(r,t,e,i),xu[e.index].halfedges.push(o),xu[t.index].halfedges.push(o),r}function eu(e,t,n){var i=[t,n];return i.left=e,i}function tu(e,t,n,i){e[0]||e[1]?e.left===n?e[1]=i:e[0]=i:(e[0]=i,e.left=t,e.right=n)}function nu(e,t,n,i,r){var o,a=e[0],s=e[1],l=a[0],c=a[1],d=0,h=1,p=s[0]-l,u=s[1]-c;if(o=t-l,p||!(o>0)){if(o/=p,p<0){if(o<d)return;o<h&&(h=o)}else if(p>0){if(o>h)return;o>d&&(d=o)}if(o=i-l,p||!(o<0)){if(o/=p,p<0){if(o>h)return;o>d&&(d=o)}else if(p>0){if(o<d)return;o<h&&(h=o)}if(o=n-c,u||!(o>0)){if(o/=u,u<0){if(o<d)return;o<h&&(h=o)}else if(u>0){if(o>h)return;o>d&&(d=o)}if(o=r-c,u||!(o<0)){if(o/=u,u<0){if(o>h)return;o>d&&(d=o)}else if(u>0){if(o<d)return;o<h&&(h=o)}return!(d>0||h<1)||(d>0&&(e[0]=[l+d*p,c+d*u]),h<1&&(e[1]=[l+h*p,c+h*u]),!0)}}}}}function iu(e,t,n,i,r){var o=e[1];if(o)return!0;var a,s,l=e[0],c=e.left,d=e.right,h=c[0],p=c[1],u=d[0],f=d[1],g=(h+u)/2,m=(p+f)/2;if(f===p){if(g<t||g>=i)return;if(h>u){if(l){if(l[1]>=r)return}else l=[g,n];o=[g,r]}else{if(l){if(l[1]<n)return}else l=[g,r];o=[g,n]}}else if(s=m-(a=(h-u)/(f-p))*g,a<-1||a>1)if(h>u){if(l){if(l[1]>=r)return}else l=[(n-s)/a,n];o=[(r-s)/a,r]}else{if(l){if(l[1]<n)return}else l=[(r-s)/a,r];o=[(n-s)/a,n]}else if(p<f){if(l){if(l[0]>=i)return}else l=[t,a*t+s];o=[i,a*i+s]}else{if(l){if(l[0]<t)return}else l=[i,a*i+s];o=[t,a*t+s]}return e[0]=l,e[1]=o,!0}function ru(e,t){var n=e.site,i=t.left,r=t.right;return n===r&&(r=i,i=n),r?Math.atan2(r[1]-i[1],r[0]-i[0]):(n===i?(i=t[1],r=t[0]):(i=t[0],r=t[1]),Math.atan2(i[0]-r[0],r[1]-i[1]))}function ou(e,t){return t[+(t.left!==e.site)]}function au(e,t){return t[+(t.left===e.site)]}var su,lu=[];function cu(){Wp(this),this.x=this.y=this.arc=this.site=this.cy=null}function du(e){var t=e.P,n=e.N;if(t&&n){var i=t.site,r=e.site,o=n.site;if(i!==o){var a=r[0],s=r[1],l=i[0]-a,c=i[1]-s,d=o[0]-a,h=o[1]-s,p=2*(l*h-c*d);if(!(p>=-Cu)){var u=l*l+c*c,f=d*d+h*h,g=(h*u-c*f)/p,m=(l*f-d*u)/p,v=lu.pop()||new cu;v.arc=e,v.site=r,v.x=g+a,v.y=(v.cy=m+s)+Math.sqrt(g*g+m*m),e.circle=v;for(var y=null,_=wu._;_;)if(v.y<_.y||v.y===_.y&&v.x<=_.x){if(!_.L){y=_.P;break}_=_.L}else{if(!_.R){y=_;break}_=_.R}wu.insert(y,v),y||(su=v)}}}}function hu(e){var t=e.circle;t&&(t.P||(su=t.N),wu.remove(t),lu.push(t),Wp(t),e.circle=null)}var pu=[];function uu(){Wp(this),this.edge=this.site=this.circle=null}function fu(e){var t=pu.pop()||new uu;return t.site=e,t}function gu(e){hu(e),bu.remove(e),pu.push(e),Wp(e)}function mu(e){var t=e.circle,n=t.x,i=t.cy,r=[n,i],o=e.P,a=e.N,s=[e];gu(e);for(var l=o;l.circle&&Math.abs(n-l.circle.x)<Eu&&Math.abs(i-l.circle.cy)<Eu;)o=l.P,s.unshift(l),gu(l),l=o;s.unshift(l),hu(l);for(var c=a;c.circle&&Math.abs(n-c.circle.x)<Eu&&Math.abs(i-c.circle.cy)<Eu;)a=c.N,s.push(c),gu(c),c=a;s.push(c),hu(c);var d,h=s.length;for(d=1;d<h;++d)c=s[d],l=s[d-1],tu(c.edge,l.site,c.site,r);l=s[0],(c=s[h-1]).edge=Qp(l.site,c.site,null,r),du(l),du(c)}function vu(e){for(var t,n,i,r,o=e[0],a=e[1],s=bu._;s;)if((i=yu(s,a)-o)>Eu)s=s.L;else{if(!((r=o-_u(s,a))>Eu)){i>-Eu?(t=s.P,n=s):r>-Eu?(t=s,n=s.N):t=n=s;break}if(!s.R){t=s;break}s=s.R}!function(e){xu[e.index]={site:e,halfedges:[]}}(e);var l=fu(e);if(bu.insert(t,l),t||n){if(t===n)return hu(t),n=fu(t.site),bu.insert(l,n),l.edge=n.edge=Qp(t.site,l.site),du(t),void du(n);if(n){hu(t),hu(n);var c=t.site,d=c[0],h=c[1],p=e[0]-d,u=e[1]-h,f=n.site,g=f[0]-d,m=f[1]-h,v=2*(p*m-u*g),y=p*p+u*u,_=g*g+m*m,b=[(m*y-u*_)/v+d,(p*_-g*y)/v+h];tu(n.edge,c,f,b),l.edge=Qp(c,e,null,b),n.edge=Qp(e,f,null,b),du(t),du(n)}else l.edge=Qp(t.site,l.site)}}function yu(e,t){var n=e.site,i=n[0],r=n[1],o=r-t;if(!o)return i;var a=e.P;if(!a)return-1/0;var s=(n=a.site)[0],l=n[1],c=l-t;if(!c)return s;var d=s-i,h=1/o-1/c,p=d/c;return h?(-p+Math.sqrt(p*p-2*h*(d*d/(-2*c)-l+c/2+r-o/2)))/h+i:(i+s)/2}function _u(e,t){var n=e.N;if(n)return yu(n,t);var i=e.site;return i[1]===t?i[0]:1/0}var bu,xu,wu,Su,Eu=1e-6,Cu=1e-12;function zu(e,t){return t[1]-e[1]||t[0]-e[0]}function ku(e,t){var n,i,r,o=e.sort(zu).pop();for(Su=[],xu=new Array(e.length),bu=new Zp,wu=new Zp;;)if(r=su,o&&(!r||o[1]<r.y||o[1]===r.y&&o[0]<r.x))o[0]===n&&o[1]===i||(vu(o),n=o[0],i=o[1]),o=e.pop();else{if(!r)break;mu(r.arc)}if(function(){for(var e,t,n,i,r=0,o=xu.length;r<o;++r)if((e=xu[r])&&(i=(t=e.halfedges).length)){var a=new Array(i),s=new Array(i);for(n=0;n<i;++n)a[n]=n,s[n]=ru(e,Su[t[n]]);for(a.sort((function(e,t){return s[t]-s[e]})),n=0;n<i;++n)s[n]=t[a[n]];for(n=0;n<i;++n)t[n]=s[n]}}(),t){var a=+t[0][0],s=+t[0][1],l=+t[1][0],c=+t[1][1];!function(e,t,n,i){for(var r,o=Su.length;o--;)iu(r=Su[o],e,t,n,i)&&nu(r,e,t,n,i)&&(Math.abs(r[0][0]-r[1][0])>Eu||Math.abs(r[0][1]-r[1][1])>Eu)||delete Su[o]}(a,s,l,c),function(e,t,n,i){var r,o,a,s,l,c,d,h,p,u,f,g,m=xu.length,v=!0;for(r=0;r<m;++r)if(o=xu[r]){for(a=o.site,s=(l=o.halfedges).length;s--;)Su[l[s]]||l.splice(s,1);for(s=0,c=l.length;s<c;)f=(u=au(o,Su[l[s]]))[0],g=u[1],h=(d=ou(o,Su[l[++s%c]]))[0],p=d[1],(Math.abs(f-h)>Eu||Math.abs(g-p)>Eu)&&(l.splice(s,0,Su.push(eu(a,u,Math.abs(f-e)<Eu&&i-g>Eu?[e,Math.abs(h-e)<Eu?p:i]:Math.abs(g-i)<Eu&&n-f>Eu?[Math.abs(p-i)<Eu?h:n,i]:Math.abs(f-n)<Eu&&g-t>Eu?[n,Math.abs(h-n)<Eu?p:t]:Math.abs(g-t)<Eu&&f-e>Eu?[Math.abs(p-t)<Eu?h:e,t]:null))-1),++c);c&&(v=!1)}if(v){var y,_,b,x=1/0;for(r=0,v=null;r<m;++r)(o=xu[r])&&(b=(y=(a=o.site)[0]-e)*y+(_=a[1]-t)*_)<x&&(x=b,v=o);if(v){var w=[e,t],S=[e,i],E=[n,i],C=[n,t];v.halfedges.push(Su.push(eu(a=v.site,w,S))-1,Su.push(eu(a,S,E))-1,Su.push(eu(a,E,C))-1,Su.push(eu(a,C,w))-1)}}for(r=0;r<m;++r)(o=xu[r])&&(o.halfedges.length||delete xu[r])}(a,s,l,c)}this.edges=Su,this.cells=xu,bu=wu=Su=xu=null}ku.prototype={constructor:ku,polygons:function(){var e=this.edges;return this.cells.map((function(t){var n=t.halfedges.map((function(n){return ou(t,e[n])}));return n.data=t.site.data,n}))},triangles:function(){var e=[],t=this.edges;return this.cells.forEach((function(n,i){if(o=(r=n.halfedges).length)for(var r,o,a,s,l,c,d=n.site,h=-1,p=t[r[o-1]],u=p.left===d?p.right:p.left;++h<o;)a=u,u=(p=t[r[h]]).left===d?p.right:p.left,a&&u&&i<a.index&&i<u.index&&(l=a,c=u,((s=d)[0]-c[0])*(l[1]-s[1])-(s[0]-l[0])*(c[1]-s[1])<0)&&e.push([d.data,a.data,u.data])})),e},links:function(){return this.edges.filter((function(e){return e.right})).map((function(e){return{source:e.left.data,target:e.right.data}}))},find:function(e,t,n){for(var i,r,o=this,a=o._found||0,s=o.cells.length;!(r=o.cells[a]);)if(++a>=s)return null;var l=e-r.site[0],c=t-r.site[1],d=l*l+c*c;do{r=o.cells[i=a],a=null,r.halfedges.forEach((function(n){var i=o.edges[n],s=i.left;if(s!==r.site&&s||(s=i.right)){var l=e-s[0],c=t-s[1],h=l*l+c*c;h<d&&(d=h,a=s.index)}}))}while(null!==a);return o._found=i,null==n||d<=n*n?r.site:null}};var Mu=Math.SQRT2;function Au(e){return((e=Math.exp(e))+1/e)/2}function Tu(e,t){var n,i,r=e[0],o=e[1],a=e[2],s=t[0],l=t[1],c=t[2],d=s-r,h=l-o,p=d*d+h*h;if(p<1e-12)i=Math.log(c/a)/Mu,n=function(e){return[r+e*d,o+e*h,a*Math.exp(Mu*e*i)]};else{var u=Math.sqrt(p),f=(c*c-a*a+4*p)/(2*a*2*u),g=(c*c-a*a-4*p)/(2*c*2*u),m=Math.log(Math.sqrt(f*f+1)-f),v=Math.log(Math.sqrt(g*g+1)-g);i=(v-m)/Mu,n=function(e){var t,n=e*i,s=Au(m),l=a/(2*u)*(s*(t=Mu*n+m,((t=Math.exp(2*t))-1)/(t+1))-function(e){return((e=Math.exp(e))-1/e)/2}(m));return[r+l*d,o+l*h,a*s/Au(Mu*n+m)]}}return n.duration=1e3*i,n}function Nu(e){return function(){return e}}function Iu(e,t,n){this.target=e,this.type=t,this.transform=n}function Ou(e,t,n){this.k=e,this.x=t,this.y=n}Ou.prototype={constructor:Ou,scale:function(e){return 1===e?this:new Ou(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new Ou(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Lu,Pu,Hu=new Ou(1,0,0);function Ru(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Hu;return e.__zoom}function Vu(){hc.stopImmediatePropagation()}function Bu(){hc.preventDefault(),hc.stopImmediatePropagation()}function Du(){return!hc.ctrlKey&&!hc.button}function Fu(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function ju(){return this.__zoom||Hu}function Uu(){return-hc.deltaY*(1===hc.deltaMode?.05:hc.deltaMode?1:.002)}function $u(){return navigator.maxTouchPoints||"ontouchstart"in this}function Gu(e,t,n){var i=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(r>i?(i+r)/2:Math.min(0,i)||Math.max(0,r),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function qu(){var e,t,n=Du,i=Fu,r=Gu,o=Uu,a=$u,s=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],c=250,d=Tu,h=Ac("start","zoom","end"),p=0;function u(e){e.property("__zoom",ju).on("wheel.zoom",b).on("mousedown.zoom",x).on("dblclick.zoom",w).filter(a).on("touchstart.zoom",S).on("touchmove.zoom",E).on("touchend.zoom touchcancel.zoom",C).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(e,t){return(t=Math.max(s[0],Math.min(s[1],t)))===e.k?e:new Ou(t,e.x,e.y)}function g(e,t,n){var i=t[0]-n[0]*e.k,r=t[1]-n[1]*e.k;return i===e.x&&r===e.y?e:new Ou(e.k,i,r)}function m(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function v(e,t,n){e.on("start.zoom",(function(){y(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){y(this,arguments).end()})).tween("zoom",(function(){var e=this,r=arguments,o=y(e,r),a=i.apply(e,r),s=null==n?m(a):"function"==typeof n?n.apply(e,r):n,l=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),c=e.__zoom,h="function"==typeof t?t.apply(e,r):t,p=d(c.invert(s).concat(l/c.k),h.invert(s).concat(l/h.k));return function(e){if(1===e)e=h;else{var t=p(e),n=l/t[2];e=new Ou(n,s[0]-t[0]*n,s[1]-t[1]*n)}o.zoom(null,e)}}))}function y(e,t,n){return!n&&e.__zooming||new _(e,t)}function _(e,t){this.that=e,this.args=t,this.active=0,this.extent=i.apply(e,t),this.taps=0}function b(){if(n.apply(this,arguments)){var e=y(this,arguments),t=this.__zoom,i=Math.max(s[0],Math.min(s[1],t.k*Math.pow(2,o.apply(this,arguments)))),a=Th(this);if(e.wheel)e.mouse[0][0]===a[0]&&e.mouse[0][1]===a[1]||(e.mouse[1]=t.invert(e.mouse[0]=a)),clearTimeout(e.wheel);else{if(t.k===i)return;e.mouse=[a,t.invert(a)],ed(this),e.start()}Bu(),e.wheel=setTimeout((function(){e.wheel=null,e.end()}),150),e.zoom("mouse",r(g(f(t,i),e.mouse[0],e.mouse[1]),e.extent,l))}}function x(){if(!t&&n.apply(this,arguments)){var e=y(this,arguments,!0),i=Nh(hc.view).on("mousemove.zoom",(function(){if(Bu(),!e.moved){var t=hc.clientX-a,n=hc.clientY-s;e.moved=t*t+n*n>p}e.zoom("mouse",r(g(e.that.__zoom,e.mouse[0]=Th(e.that),e.mouse[1]),e.extent,l))}),!0).on("mouseup.zoom",(function(){i.on("mousemove.zoom mouseup.zoom",null),Hh(hc.view,e.moved),Bu(),e.end()}),!0),o=Th(this),a=hc.clientX,s=hc.clientY;Ph(hc.view),Vu(),e.mouse=[o,this.__zoom.invert(o)],ed(this),e.start()}}function w(){if(n.apply(this,arguments)){var e=this.__zoom,t=Th(this),o=e.invert(t),a=e.k*(hc.shiftKey?.5:2),s=r(g(f(e,a),t,o),i.apply(this,arguments),l);Bu(),c>0?Nh(this).transition().duration(c).call(v,s,t):Nh(this).call(u.transform,s)}}function S(){if(n.apply(this,arguments)){var t,i,r,o,a=hc.touches,s=a.length,l=y(this,arguments,hc.changedTouches.length===s);for(Vu(),i=0;i<s;++i)o=[o=Ih(this,a,(r=a[i]).identifier),this.__zoom.invert(o),r.identifier],l.touch0?l.touch1||l.touch0[2]===o[2]||(l.touch1=o,l.taps=0):(l.touch0=o,t=!0,l.taps=1+!!e);e&&(e=clearTimeout(e)),t&&(l.taps<2&&(e=setTimeout((function(){e=null}),500)),ed(this),l.start())}}function E(){if(this.__zooming){var t,n,i,o,a=y(this,arguments),s=hc.changedTouches,c=s.length;for(Bu(),e&&(e=clearTimeout(e)),a.taps=0,t=0;t<c;++t)i=Ih(this,s,(n=s[t]).identifier),a.touch0&&a.touch0[2]===n.identifier?a.touch0[0]=i:a.touch1&&a.touch1[2]===n.identifier&&(a.touch1[0]=i);if(n=a.that.__zoom,a.touch1){var d=a.touch0[0],h=a.touch0[1],p=a.touch1[0],u=a.touch1[1],m=(m=p[0]-d[0])*m+(m=p[1]-d[1])*m,v=(v=u[0]-h[0])*v+(v=u[1]-h[1])*v;n=f(n,Math.sqrt(m/v)),i=[(d[0]+p[0])/2,(d[1]+p[1])/2],o=[(h[0]+u[0])/2,(h[1]+u[1])/2]}else{if(!a.touch0)return;i=a.touch0[0],o=a.touch0[1]}a.zoom("touch",r(g(n,i,o),a.extent,l))}}function C(){if(this.__zooming){var e,n,i=y(this,arguments),r=hc.changedTouches,o=r.length;for(Vu(),t&&clearTimeout(t),t=setTimeout((function(){t=null}),500),e=0;e<o;++e)n=r[e],i.touch0&&i.touch0[2]===n.identifier?delete i.touch0:i.touch1&&i.touch1[2]===n.identifier&&delete i.touch1;if(i.touch1&&!i.touch0&&(i.touch0=i.touch1,delete i.touch1),i.touch0)i.touch0[1]=this.__zoom.invert(i.touch0[0]);else if(i.end(),2===i.taps){var a=Nh(this).on("dblclick.zoom");a&&a.apply(this,arguments)}}}return u.transform=function(e,t,n){var i=e.selection?e.selection():e;i.property("__zoom",ju),e!==i?v(e,t,n):i.interrupt().each((function(){y(this,arguments).start().zoom(null,"function"==typeof t?t.apply(this,arguments):t).end()}))},u.scaleBy=function(e,t,n){u.scaleTo(e,(function(){return this.__zoom.k*("function"==typeof t?t.apply(this,arguments):t)}),n)},u.scaleTo=function(e,t,n){u.transform(e,(function(){var e=i.apply(this,arguments),o=this.__zoom,a=null==n?m(e):"function"==typeof n?n.apply(this,arguments):n,s=o.invert(a),c="function"==typeof t?t.apply(this,arguments):t;return r(g(f(o,c),a,s),e,l)}),n)},u.translateBy=function(e,t,n){u.transform(e,(function(){return r(this.__zoom.translate("function"==typeof t?t.apply(this,arguments):t,"function"==typeof n?n.apply(this,arguments):n),i.apply(this,arguments),l)}))},u.translateTo=function(e,t,n,o){u.transform(e,(function(){var e=i.apply(this,arguments),a=this.__zoom,s=null==o?m(e):"function"==typeof o?o.apply(this,arguments):o;return r(Hu.translate(s[0],s[1]).scale(a.k).translate("function"==typeof t?-t.apply(this,arguments):-t,"function"==typeof n?-n.apply(this,arguments):-n),e,l)}),o)},_.prototype={start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){mc(new Iu(u,e,this.that.__zoom),h.apply,h,[e,this.that,this.args])}},u.wheelDelta=function(e){return arguments.length?(o="function"==typeof e?e:Nu(+e),u):o},u.filter=function(e){return arguments.length?(n="function"==typeof e?e:Nu(!!e),u):n},u.touchable=function(e){return arguments.length?(a="function"==typeof e?e:Nu(!!e),u):a},u.extent=function(e){return arguments.length?(i="function"==typeof e?e:Nu([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),u):i},u.scaleExtent=function(e){return arguments.length?(s[0]=+e[0],s[1]=+e[1],u):[s[0],s[1]]},u.translateExtent=function(e){return arguments.length?(l[0][0]=+e[0][0],l[1][0]=+e[1][0],l[0][1]=+e[0][1],l[1][1]=+e[1][1],u):[[l[0][0],l[0][1]],[l[1][0],l[1][1]]]},u.constrain=function(e){return arguments.length?(r=e,u):r},u.duration=function(e){return arguments.length?(c=+e,u):c},u.interpolate=function(e){return arguments.length?(d=e,u):d},u.on=function(){var e=h.on.apply(h,arguments);return e===h?u:e},u.clickDistance=function(e){return arguments.length?(p=(e=+e)*e,u):Math.sqrt(p)},u}Ru.prototype=Ou.prototype,function(e){e.FETCH_PBTXT_BYTES="FETCH_PBTXT_BYTES",e.FETCH_PBTXT_BYTES_FROM_FILESYSTEM="FETCH_PBTXT_BYTES_FROM_FILESYSTEM",e.FETCH_PBTXT_BYTES_FROM_SERVER="FETCH_PBTXT_BYTES_FROM_SERVER",e.PARSE_PBTXT_INTO_OBJECT="PARSE_PBTXT_INTO_OBJECT",e.FETCH_METADATA_PBTXT_BYTES="FETCH_METADATA_PBTXT_BYTES",e.PARSE_METADATA_PBTXT_INTO_OBJECT="PARSE_METADATA_PBTXT_INTO_OBJECT",e.NORMALIZING_NAMES="NORMALIZING_NAMES",e.BUILD_SLIM_GRAPH="BUILD_SLIM_GRAPH",e.HIERARCHY_ADD_NODES="HIERARCHY_ADD_NODES",e.HIERARCHY_DETECT_SERIES="HIERARCHY_DETECT_SERIES",e.HIERARCHY_ADD_EDGES="HIERARCHY_ADD_EDGES",e.HIERARCHY_FIND_SIMILAR_SUBGRAPHS="HIERARCHY_FIND_SIMILAR_SUBGRAPHS",e.RENDER_BUILD_HIERARCHY="RENDER_BUILD_HIERARCHY",e.RENDER_SCENE_LAYOUT="RENDER_SCENE_LAYOUT",e.RENDER_SCENE_BUILD_SCENE="RENDER_SCENE_BUILD_SCENE",e.GRAPH_LOAD_SUCCEEDED="GRAPH_LOAD_SUCCEEDED",e.GRAPH_LOAD_FAILED="GRAPH_LOAD_FAILED"}(Lu||(Lu={})),function(e){e.NODE_EXPANSION_TOGGLED="NODE_EXPANSION_TOGGLED",e.NODE_SEARCH_RESULT_FOCUSED="NODE_SEARCH_RESULT_FOCUSED",e.NODE_AUXILIARY_EXTRACTION_CHANGED="NODE_AUXILIARY_EXTRACTION_CHANGED",e.GRAPH_TYPE_CHANGED="GRAPH_TYPE_CHANGED",e.TRACE_INPUT_MODE_TOGGLED="TRACE_INPUT_MODE_TOGGLED",e.NODE_COLOR_MODE_CHANGED="NODE_COLOR_MODE_CHANGED",e.UPLOADED_GRAPH_FROM_FILESYSTEM="UPLOADED_GRAPH_FROM_FILESYSTEM"}(Pu||(Pu={}));const Xu=Object.assign(Object.assign({},Lu),Pu);var Wu,Ku=n(6246);!function(e){e.OP_GRAPH="op_graph",e.CONCEPTUAL_GRAPH="conceptual_graph",e.PROFILE="profile"}(Wu||(Wu={}));let Yu={Node:{CONTAINER:"nodes",GROUP:"node",SHAPE:"nodeshape",COLOR_TARGET:"nodecolortarget",LABEL:"nodelabel",BUTTON_CONTAINER:"buttoncontainer",BUTTON_CIRCLE:"buttoncircle",EXPAND_BUTTON:"expandbutton",COLLAPSE_BUTTON:"collapsebutton"},Edge:{CONTAINER:"edges",GROUP:"edge",LINE:"edgeline",REFERENCE_EDGE:"referenceedge",REF_LINE:"refline",SELECTABLE:"selectableedge",SELECTED:"selectededge",STRUCTURAL:"structural",HIGHLIGHTED:"highlighted"},Annotation:{OUTBOX:"out-annotations",INBOX:"in-annotations",GROUP:"annotation",NODE:"annotation-node",EDGE:"annotation-edge",CONTROL_EDGE:"annotation-control-edge",LABEL:"annotation-label",ELLIPSIS:"annotation-ellipsis"},Scene:{GROUP:"scene",CORE:"core",FUNCTION_LIBRARY:"function-library",INEXTRACT:"in-extract",OUTEXTRACT:"out-extract"},Subscene:{GROUP:"subscene"},OPNODE:"op",METANODE:"meta",SERIESNODE:"series",BRIDGENODE:"bridge",ELLIPSISNODE:"ellipsis",API_LIST:"api_list"};const Ju=5,Zu=9,Qu=8,ef=6;function tf(e,t,n){let i=e.node().childNodes;for(let e=0;e<i.length;e++){let r=i[e];if(r.tagName===t)if(n instanceof Array){let e=!0;for(let t=0;t<n.length;t++)e=e&&r.classList.contains(n[t]);if(e)return Nh(r)}else if(!n||r.classList.contains(n))return Nh(r)}return Nh(null)}function nf(e,t,n,i){let r=tf(e,t,n);if(!r.empty())return r;let o=document.createElementNS("http://www.w3.org/2000/svg",t);if(n instanceof Array)for(let e=0;e<n.length;e++)o.classList.add(n[e]);else o.classList.add(n);return i?e.node().insertBefore(o,i):e.node().appendChild(o),Nh(o).datum(e.datum())}class rf{constructor(e){this.totalBytes=0,this.outputSize=e}addExecutionTime(e,t){null!=this.startTime?this.startTime=Math.min(this.startTime,e):this.startTime=e,null!=this.endTime?this.endTime=Math.max(this.endTime,t):this.endTime=t}addBytesAllocation(e){null!=this.totalBytes?this.totalBytes=Math.max(this.totalBytes,e):this.totalBytes=e}combine(e){null!=e.totalBytes&&(this.totalBytes+=e.totalBytes),null!=e.getTotalMicros()&&this.addExecutionTime(e.startTime,e.endTime)}getTotalMicros(){return null==this.startTime||null==this.endTime?null:this.endTime-this.startTime}}const of=function e(){var t=function(e){var t=e(bp,bp),n=1;return t.exponent=function(t){return arguments.length?1==(n=+t)?e(bp,bp):.5===n?e(Tp,Np):e(Ap(n),Ap(1/n)):n},kp(t)}(zp());return t.copy=function(){return Cp(t,e()).exponent(t.exponent())},fp.apply(t,arguments),t}().exponent(.3).domain([1,5e6]).range([.75,12]).clamp(!0),af=20;function sf(e){!function(e){return e.hasOwnProperty("timingId")}(e)?(e.actionId,e.eventLabel):(e.timingId,e.eventValue)}function lf(e,t,n){let i=Date.now(),r=t();const o=Date.now()-i;return console.log(e,":",o,"ms"),n&&sf({timingId:n,eventValue:o}),r}function cf(e){return{setMessage:function(t){e.set("progress",{value:e.progress.value,msg:t})},updateProgress:function(t){e.set("progress",{value:e.progress.value+t,msg:e.progress.msg})},reportError:function(t,n){console.error(n.stack),e.set("progress",{value:e.progress.value,msg:t,error:!0})}}}function df(e,t,n){return{setMessage:function(t){e.setMessage(n+": "+t)},updateProgress:function(n){e.updateProgress(n*t/100)},reportError:function(t,i){e.reportError(n+": "+t,i)}}}function hf(e,t,n,i,r){return new Promise(((o,a)=>{i&&i.setMessage(e),setTimeout((function(){try{let a=lf(e,n,r);i&&i.updateProgress(t),o(a)}catch(t){i&&i.reportError("Failed "+e,t)}}),af)}))}function pf(e,t,n,i,r){return new Promise(((o,a)=>{let s=function(t){i.reportError("Failed "+e,t),a(t)};i.setMessage(e),setTimeout((function(){try{let a=Date.now();n().then((function(n){const s=Date.now()-a;console.log(e,":",s,"ms"),i.updateProgress(t),sf({timingId:r,eventValue:s}),o(n)})).catch(s)}catch(e){s(e)}}),af)}))}const uf=[{symbol:"B"},{symbol:"KB",numUnits:1024},{symbol:"MB",numUnits:1024},{symbol:"GB",numUnits:1024},{symbol:"TB",numUnits:1024},{symbol:"PB",numUnits:1024}],ff=[{symbol:"µs"},{symbol:"ms",numUnits:1e3},{symbol:"s",numUnits:1e3},{symbol:"min",numUnits:60},{symbol:"hr",numUnits:60},{symbol:"days",numUnits:24}];function gf(e,t,n=0){return n+1<t.length&&e>=t[n+1].numUnits?gf(e/t[n+1].numUnits,t,n+1):Number(e.toPrecision(3))+" "+t[n].symbol}function mf(e){return!(!e||!(e.totalBytes>0||e.getTotalMicros()>0||e.outputSize))}const vf=document.createElement("canvas").getContext("2d");function yf(e,t){return vf&&(vf.font=`${t}px Roboto, sans-serif`),null==vf?void 0:vf.measureText(e).width}class _f{constructor(){this.eventTypeToListeners=new Map}getListeners(e){return this.eventTypeToListeners.has(e)||this.eventTypeToListeners.set(e,[]),this.eventTypeToListeners.get(e)}addListener(e,t){var n;null===(n=this.getListeners(e))||void 0===n||n.push(t)}removeListener(e,t){var n;const i=null===(n=this.getListeners(e))||void 0===n?void 0:n.filter((e=>e!==t));this.eventTypeToListeners.set(e,i)}dispatchEvent(e,t){for(const n of this.getListeners(e))n(t)}}const bf="/",xf="__root__",wf="__function_library__",Sf="_too_large_attrs",Ef="node_type",Cf="precision_index",zf="matched_node_link",kf=1024,Mf="--";var Af,Tf,Nf,If,Of,Lf;!function(e){e[e.FULL=0]="FULL",e[e.EMBEDDED=1]="EMBEDDED",e[e.META=2]="META",e[e.SERIES=3]="SERIES",e[e.CORE=4]="CORE",e[e.SHADOW=5]="SHADOW",e[e.BRIDGE=6]="BRIDGE",e[e.EDGE=7]="EDGE"}(Af||(Af={})),(Lf=Tf||(Tf={}))[Lf.META=0]="META",Lf[Lf.OP=1]="OP",Lf[Lf.SERIES=2]="SERIES",Lf[Lf.BRIDGE=3]="BRIDGE",Lf[Lf.ELLIPSIS=4]="ELLIPSIS",Lf[Lf.API_LIST=9]="API_LIST",(Of=Nf||(Nf={}))[Of.INCLUDE=0]="INCLUDE",Of[Of.EXCLUDE=1]="EXCLUDE",Of[Of.UNSPECIFIED=2]="UNSPECIFIED",function(e){e[e.GROUP=0]="GROUP",e[e.UNGROUP=1]="UNGROUP"}(If||(If={}));class Pf{constructor(){this.nodes={},this.metaNodes={},this.edges=[]}}class Hf{constructor(e){this.type=Tf.ELLIPSIS,this.isGroupNode=!1,this.cardinality=1,this.parentNode=null,this.stats=null,this.setNumMoreNodes(e),this.include=Nf.UNSPECIFIED}setNumMoreNodes(e){this.numMoreNodes=e,this.name="... "+e+" more"}}class Rf{constructor(e){this.op=e.op,this.name=e.name,this.device=e.device,this.attr=e.attr,this.inputs=function(e){const t=[];let n=null;for(let i of e||[]){let e=i,r="0";const o=i.includes(":")&&i.match(qf);o&&(e=o[1],r=o[2]),n!==e&&(n=e,t.push({name:e,outputTensorKey:r}))}return t}(e.input),this.outputShapes=function(e){if(!e)return null;for(let t=0;t<e.length;t++){let{key:n,value:i}=e[t];if("_output_shapes"===n){if(!i.list||!i.list.shape)return null;let n=i.list.shape.map((e=>e.unknown_rank?null:null==e.dim||1===e.dim.length&&null==e.dim[0].size?[]:e.dim.map((e=>e.size||0))));return e.splice(t,1),n}}return null}(e.attr),this.xlaCluster=function(e){if(!e)return null;for(let t=0;t<e.length;t++)if("_XlaCluster"===e[t].key)return e[t].value.s||null;return null}(e.attr),this.compatible=!1,this.type=Tf.OP,this.isGroupNode=!1,this.cardinality=1,this.inEmbeddings=[],this.outEmbeddings=[],this.parentNode=null,this.include=Nf.UNSPECIFIED,this.owningSeries=null,this.inputData=e.input_data,this.outputData=e.output_data,this.suggestions=e.suggestions,this.stackData=e.stack_info,this.matchedNodeLink=e.matched_node_link,this.nodeAttributes={}}}function Vf(e,t={}){return new Df(e,t)}function Bf(e,t,n){Ss.each(e.nodes,(e=>{e.stats=null})),Ss.each(t.dev_stats,(t=>{n&&!n[t.device]||Ss.each(t.node_stats,(n=>{let i=n.node_name in e.nodes?n.node_name:Jf(n.node_name);if(!(i in e.nodes))return;let r=0;n.memory&&Ss.each(n.memory,(e=>{e.total_bytes&&(e.total_bytes>0?r+=Number(e.total_bytes):console.log("ignoring negative memory allocation for "+i))}));let o=null;n.output&&(o=Ss.map(n.output,(e=>Ss.map(e.tensor_description.shape.dim,(e=>Number(e.size)))))),e.nodes[i].device=t.device,null==e.nodes[i].stats&&(e.nodes[i].stats=new rf(o)),e.nodes[i].stats.addBytesAllocation(r),n.all_end_rel_micros&&(n.all_end_rel_micros>0?e.nodes[i].stats.addExecutionTime(n.all_start_micros,n.all_start_micros+n.all_end_rel_micros):console.log("ignoring negative runtime for "+i))}))}))}class Df{constructor(e,t={}){this.name=e,this.type=Tf.META,this.depth=1,this.isGroupNode=!0,this.cardinality=0,this.metagraph=Kf(e,Af.META,t),this.bridgegraph=null,this.opHistogram={},this.deviceHistogram={},this.xlaClusterHistogram={},this.compatibilityHistogram={compatible:0,incompatible:0},this.templateId=null,this.parentNode=null,this.hasNonControlEdges=!1,this.include=Nf.UNSPECIFIED,this.associatedFunction="",this.attr=[],this.inputData={},this.outputData={},this.stackData=[],this.matchedNodeLink=[],this.suggestions={},this.nodeAttributes={}}getFirstChild(){return this.metagraph.node(this.metagraph.nodes()[0])}getRootOp(){let e=this.name.split("/"),t=this.name+"/("+e[e.length-1]+")";return this.metagraph.node(t)}leaves(){let e,t=[],n=[this];for(;n.length;){let i=n.shift();(null==i?void 0:i.isGroupNode)?(e=i.metagraph,Ss.each(e.nodes(),(t=>n.push(e.node(t))))):t.push(null==i?void 0:i.name)}return t}}function Ff(e,t){return new jf(e,t)}class jf{constructor(e,t){this.v=e,this.w=t,this.baseEdgeList=[],this.inbound=null,this.numRegularEdges=0,this.numRefEdges=0,this.totalSize=0}addBaseEdge(e,t){this.baseEdgeList.push(e),this.numRegularEdges+=1,e.isReferenceEdge&&(this.numRefEdges+=1),this.totalSize+=JSON.parse(e.outputTensorKey).reduce(((e,t)=>(-1===t&&(t=1),e*t)),1),t.maxMetaEdgeSize=Math.max(t.maxMetaEdgeSize,this.totalSize)}static computeSizeOfEdge(e,t){let n=t.node(e.v);if(!n.outputShapes)return 1;t.hasShapeInfo=!0;const i=Object.keys(n.outputShapes).map((e=>n.outputShapes[e])).map((e=>null==e?1:e.reduce(((e,t)=>(-1===t&&(t=1),e*t)),1)));return Ss.sum(i)}}function Uf(e,t,n,i,r,o){return new Gf(e,t,n,i,r,o)}function $f(e,t,n,i,r){return(n?n+"/":"")+e+(void 0!==i&&void 0!==r?"["+i+"-"+r+"]":"#")+t}class Gf{constructor(e,t,n,i,r,o){this.name=r||$f(e,t,n),this.type=Tf.SERIES,this.hasLoop=!1,this.prefix=e,this.suffix=t,this.clusterId=i,this.ids=[],this.parent=n,this.isGroupNode=!0,this.cardinality=0,this.metagraph=Kf(r,Af.SERIES,o),this.bridgegraph=null,this.parentNode=null,this.deviceHistogram={},this.xlaClusterHistogram={},this.compatibilityHistogram={compatible:0,incompatible:0},this.hasNonControlEdges=!1,this.include=Nf.UNSPECIFIED}}const qf=/^([^:]+):((\w+:|)\d+)$/,Xf={enableEmbedding:!0,inEmbeddingTypes:["Const"],outEmbeddingTypes:["^[a-zA-Z]+Summary$"],refEdges:{"Assign 0":!0,"AssignAdd 0":!0,"AssignSub 0":!0,"assign 0":!0,"assign_add 0":!0,"assign_sub 0":!0,"count_up_to 0":!0,"ScatterAdd 0":!0,"ScatterSub 0":!0,"ScatterUpdate 0":!0,"scatter_add 0":!0,"scatter_sub 0":!0,"scatter_update 0":!0}};function Wf(e,t,n){let i={},r={},o={},a=Yf(t.inEmbeddingTypes),s=Yf(t.outEmbeddingTypes),l=[],c=e.node,d=new Array(c.length);return hf("Normalizing names",30,(()=>{let e=new Array(c.length),t=0;return Ss.each(c,(n=>{if(n.isLeaf){let c=new Rf(n);return c.nodeAttributes._order=t,n.matched_node_link&&n.matched_node_link.length>0&&(c.nodeAttributes._linked_node=n.matched_node_link),a(c)?(l.push(c.name),i[c.name]=c,c):s(c)?(l.push(c.name),r[c.name]=c,Ss.each(c.inputs,(e=>{let t=e.name;o[t]=o[t]||[],o[t].push(c)})),c):(e[t]=c,d[t]=c.name,t++,c)}{let i=new Df(n.name);return i.attr=n.attr,i.nodeAttributes._order=t,n.matched_node_link&&n.matched_node_link.length>0&&(i.nodeAttributes._linked_node=n.matched_node_link),i.inputData=n.input_data,i.outputData=n.output_data,i.stackData=n.stack_info,i.matchedNodeLink=n.matched_node_link,i.suggestions=n.suggestions,1==Number(n.node_type)?i.type:i.type=Number(n.node_type),e[t]=i,d[t]=i.name,t++,i}})),e.splice(t),d.splice(t),e}),n,Xu.NORMALIZING_NAMES).then((e=>hf("Building the data structure",70,(()=>{let t=function(e,t){let n={},i={};e.sort();for(let t=0;t<e.length-1;++t){let r=e[t];Ss.each(eg(r).slice(0,-1),(e=>{i[e]=!0}));for(let i=t+1;i<e.length;++i){let t=e[i];if(!Ss.startsWith(t,r))break;if(t.length>r.length&&t.charAt(r.length)===bf){n[r]=Jf(r);break}}}return Ss.each(t,(e=>{e in i&&(n[e]=Jf(e))})),n}(d,l),n=new Pf;return Ss.each(e,(e=>{if(e instanceof Rf){let i=t[e.name]||e.name;n.nodes[i]=e,e.name in o&&(e.outEmbeddings=o[e.name],Ss.each(e.outEmbeddings,(e=>{e.name=t[e.name]||e.name}))),e.name=i}else n.metaNodes[e.name]=e})),Ss.each(e,(e=>{Ss.each(e.attr,(({key:t,value:i})=>{"edge_info"===t&&function(e,t,n){const{shape:i,source:r,target:o}=n,a=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(n,["shape","source","target"]);if(!o&&!r||n.target===t.name||n.source===t.name)return;let s=i;i&&"N/A"!==i||(s="[]");const l={v:o?t.name:r,w:o||t.name,outputTensorKey:s,isReferenceEdge:!1,attr:a};e.edges.find((e=>JSON.stringify(e)===JSON.stringify(l)))||e.edges.push(l)}(n,e,i)})),e.attr=Ss.filter(e.attr,(({key:e,value:t})=>"edge_info"!==e))})),Ss.each(i,((e,n)=>{e.name=t[e.name]||e.name})),n}),n,Xu.BUILD_SLIM_GRAPH)))}function Kf(e,t,n={}){const i=new Ku.graphlib.Graph(Object.assign(Object.assign({},n),{multigraph:!0}));return i.setGraph({name:e,rankdir:n.rankdir||"TB",type:t}),i}function Yf(e){return function(t){for(let n=0;n<e.length;n++){let i=new RegExp(e[n]);if("string"==typeof t.op&&t.op.match(i))return!0}return!1}}function Jf(e){let t=e.split(bf);return e+bf+"("+t[t.length-1]+")"}function Zf(e){let t=e.nodes().map((function(t){var n;return null===(n=e.neighbors(t))||void 0===n?void 0:n.length}));return t.sort(),t}function Qf(e,t){let n=Zf(e),i=Zf(t);for(let e=0;e<n.length;e++)if(n[e]!==i[e])return!1;return!0}function eg(e,t){let n=[],i=e.indexOf(bf);for(;i>=0;)n.push(e.substring(0,i)),i=e.indexOf(bf,i+1);if(t){let i=t[e];i&&n.push(i)}return n.push(e),n}function tg(e){return e===Nf.EXCLUDE?"Add to main graph":"Remove from main graph"}function ng(e){return e===If.GROUP?"Ungroup this series of nodes":"Group this series of nodes"}function ig(e,t,n){return Ss.sortBy(e,[e=>t.node(e).op,e=>t.node(e).templateId,e=>{var n;return null===(n=t.neighbors(e))||void 0===n?void 0:n.length},e=>{var n;return null===(n=t.predecessors(e))||void 0===n?void 0:n.length},e=>{var n;return null===(n=t.successors(e))||void 0===n?void 0:n.length},e=>e.substr(n.length)])}function rg(e,t){if(!Qf(e,t))return!1;let n=e.graph().name,i=t.graph().name,r={},o={},a=[];function s(e,t){let s=e.substr(n.length),l=t.substr(i.length);return r[s]^o[l]?(console.warn("different visit pattern","["+n+"]",s,"["+i+"]",l),!0):(r[s]||(r[s]=o[l]=!0,a.push({n1:e,n2:t})),!1)}let l=e.sources(),c=t.sources();if(l.length!==c.length)return console.log("different source length"),!1;l=ig(l,e,n),c=ig(c,t,i);for(let e=0;e<l.length;e++)if(s(l[e],c[e]))return!1;for(;a.length>0;){let r=a.pop();if(!og(e.node(null==r?void 0:r.n1),t.node(null==r?void 0:r.n2)))return!1;let o=e.successors(null==r?void 0:r.n1),l=t.successors(null==r?void 0:r.n2);if((null==o?void 0:o.length)!==(null==l?void 0:l.length))return console.log("# of successors mismatch",o,l),!1;o=ig(o,e,n),l=ig(l,t,i);for(let e=0;e<(null==o?void 0:o.length);e++)if(s(null==o?void 0:o[e],null==l?void 0:l[e]))return!1}return!0}function og(e,t){if(e.type===Tf.META){let n=e,i=t;return!!n.templateId&&!!i.templateId&&n.templateId===i.templateId}if(e.type===Tf.OP&&t.type===Tf.OP)return e.op===t.op;if(e.type===Tf.SERIES&&t.type===Tf.SERIES){let n=e,i=t,r=n.metagraph.nodeCount();return r===i.metagraph.nodeCount()&&(0===r||n.metagraph.node(n.metagraph.nodes()[0]).op===i.metagraph.node(i.metagraph.nodes()[0]).op)}return!1}var ag;!function(e){e[e.TEMPLATES_UPDATED=0]="TEMPLATES_UPDATED"}(ag||(ag={}));class sg extends _f{constructor(e){super(),this.hasShapeInfo=!1,this.maxMetaEdgeSize=1,this.graphOptions={},this.templates=null,this.graphOptions.compound=!0,this.graphOptions.rankdir=e.rankDirection,this.root=Vf(xf,this.graphOptions),this.seriesGroupMap=new Map(e.seriesMap),this.devices=null,this.verifyTemplate=e.verifyTemplate,this.index={},this.index[xf]=this.root,this.orderings={}}getSeriesGroupType(e){var t;return null!==(t=this.seriesGroupMap.get(e))&&void 0!==t?t:If.GROUP}setSeriesGroupType(e,t){return this.seriesGroupMap.set(e,t)}buildSeriesGroupMapToggled(e){const t=this.getSeriesGroupType(e)===If.GROUP?If.UNGROUP:If.GROUP;return new Map([...this.seriesGroupMap,[e,t]])}getNodeMap(){return this.index}node(e){return this.index[e]}setNode(e,t){this.index[e]=t}getBridgegraph(e){let t=this.index[e];if(!t)throw Error("Could not find node in hierarchy: "+e);if(!("metagraph"in t))return null;let n=t;if(n.bridgegraph)return n.bridgegraph;let i=n.bridgegraph=Kf("BRIDGEGRAPH",Af.BRIDGE,this.graphOptions);if(!t.parentNode||!("metagraph"in t.parentNode))return i;let r=t.parentNode,o=r.metagraph,a=this.getBridgegraph(r.name);return Ss.each([o,a],(t=>{t.edges().filter((t=>t.v===e||t.w===e)).forEach((n=>{let r=n.w===e,o=t.edge(n);Ss.each(o.baseEdgeList,(t=>{var o;let[a,s]=r?[t.w,n.v]:[t.v,n.w];if(e!==a){let n=this.getChildName(e,a);if(!n)return;let l={v:r?s:n,w:r?n:s},c=i.edge(l);c||(c=Ff(l.v,l.w),c.inbound=r,i.setEdge(l.v,l.w,c,null===(o=t.attr)||void 0===o?void 0:o.id)),c.addBaseEdge(t,this)}}))}))})),i}getChildName(e,t){let n=this.index[t];if(!n)return"";for(;n;){if(n.parentNode&&n.parentNode.name===e)return n.name;n=n.parentNode}throw Error("Could not find immediate child for descendant: "+t)}getPredecessors(e){let t=this.index[e];if(!t)throw Error("Could not find node with name: "+e);let n=this.getOneWayEdges(t,!0);return t.isGroupNode||Ss.each(t.inEmbeddings,(i=>{Ss.each(t.inputs,(t=>{if(t.name===i.name){let r=new jf(i.name,e);r.addBaseEdge({outputTensorKey:t.outputTensorKey,isReferenceEdge:!1,v:i.name,w:e},this),n.regular.push(r)}}))})),n}getSuccessors(e){let t=this.index[e];if(!t)throw Error("Could not find node with name: "+e);let n=this.getOneWayEdges(t,!1);return t.isGroupNode||Ss.each(t.outEmbeddings,(t=>{Ss.each(t.inputs,(i=>{if(i.name===e){let r=new jf(e,t.name);r.addBaseEdge({outputTensorKey:i.outputTensorKey,isReferenceEdge:!1,v:e,w:t.name},this),n.regular.push(r)}}))})),n}getOneWayEdges(e,t){let n={control:[],regular:[]};if(!e.parentNode||!e.parentNode.isGroupNode)return n;let i=e.parentNode,r=i.metagraph,o=this.getBridgegraph(i.name);return lg(r,e,t,n),lg(o,e,t,n),n}getTopologicalOrdering(e){let t=this.index[e];if(!t)throw Error("Could not find node with name: "+e);if(!t.isGroupNode)return null;if(e in this.orderings)return this.orderings[e];let n={},i={},r=t.metagraph;Ss.each(r.edges(),(e=>{r.edge(e).numRegularEdges&&(e.v in n||(n[e.v]=[]),n[e.v].push(e.w),i[e.w]=!0)}));let o=Ss.difference(Ss.keys(n),Ss.keys(i)),a=this.orderings[e]={},s=0;for(;o.length;){let e=o.shift();a[e]=s++,Ss.each(n[e],(e=>o.push(e))),delete n[e]}return a}getTemplateIndex(){if(!this.templates)return null;let e=function(e){var t=[];for(var n in e)t.push(n);return t}(this.templates);if(!e.length)return null;let t=mp().domain(e).range(ul(0,e.length));return e=>t(e)}updateTemplates(){lf("Finding similar subgraphs",(()=>{this.templates=function(e,t){let n=function(e,t){return Ss.reduce(e,(function(e,n){let i=n[0],r=n[1].nodes,o=[];return r.forEach((function(e){for(let n=0;n<o.length;n++)if(!t||rg(o[n].metanode.metagraph,e.metagraph))return e.templateId=o[n].metanode.templateId,void o[n].members.push(e.name);e.templateId=i+"["+o.length+"]",o.push({metanode:e,members:[e.name]})})),o.forEach((function(t){e[t.metanode.templateId]={level:n[1].level,nodes:t.members}})),e}),{})}(function(e){const t=e.getNodeMap();let n=Object.keys(t).reduce(((e,n)=>{const i=t[n];if(i.type!==Tf.META)return e;let r=n.split("/").length-1,o=(s=i,Ss.map({depth:s.depth,"|V|":s.metagraph.nodes().length,"|E|":s.metagraph.edges().length},(function(e,t){return t+"="+e})).join(" ")+" [ops] "+Ss.map(s.opHistogram,(function(e,t){return t+"="+e})).join(",")),a=e[o]||{nodes:[],level:r};var s;return e[o]=a,a.nodes.push(i),a.level>r&&(a.level=r),e}),{});return Object.keys(n).map((e=>[e,n[e]])).filter((([e,t])=>{const{nodes:n}=t;if(n.length>1)return!0;const i=n[0];return i.type===Tf.META&&i.associatedFunction})).sort((([e,t])=>t.nodes[0].depth))}(e),t);return Object.keys(n).sort((e=>n[e].level)).reduce(((e,t)=>(e[t]=n[t],e)),{})}(this,this.verifyTemplate),this.dispatchEvent(ag.TEMPLATES_UPDATED)}),Xu.HIERARCHY_FIND_SIMILAR_SUBGRAPHS)}}function lg(e,t,n,i){let r=n?e.inEdges(t.name):e.outEdges(t.name);Ss.each(r,(t=>{let n=e.edge(t);(n.numRegularEdges?i.regular:i.control).push(n)}))}const cg={verifyTemplate:!0,seriesNodeMinSize:5,seriesMap:new Map,rankDirection:"TB",useGeneralizedSeriesPatterns:!1};function dg(e,t,n){const i=new sg(t),r={};return hf("Adding nodes",30,(()=>{let t={},n={};Ss.each(e.nodes,((e,i)=>{e.device&&(t[e.device]=!0),e.xlaCluster&&(n[e.xlaCluster]=!0)})),i.devices=Ss.keys(t),fg(i,e,xf)}),n,Xu.HIERARCHY_ADD_NODES).then((()=>hf("Detect series",30,(()=>{t.seriesNodeMinSize>0&&mg(i.root,i,r,t.seriesNodeMinSize,t.seriesMap,t.useGeneralizedSeriesPatterns)}),n,Xu.HIERARCHY_DETECT_SERIES))).then((()=>hf("Adding edges",40,(()=>{gg(i,e,xf)}),n,Xu.HIERARCHY_ADD_EDGES))).then((()=>i))}function hg(e,t,n){e.node(n)&&(fg(e,t,n),gg(e,t,n))}function pg(e,t){let n={},i={};Ss.each(e.root.leaves(),(t=>{let r=e.node(t);null!=r.device&&(n[r.device]=!0),null!=r.xlaCluster&&(i[r.xlaCluster]=!0)})),e.devices=Ss.keys(n),Ss.each(e.getNodeMap(),((e,t)=>{e.isGroupNode&&(e.stats=new rf(null),e.deviceHistogram={})})),Ss.each(e.root.leaves(),(t=>{let n=e.node(t),i=n;for(;null!=i.parentNode;){if(null!=n.device){let e=i.parentNode.deviceHistogram;e[n.device]=(e[n.device]||0)+1}if(null!=n.xlaCluster){let e=i.parentNode.xlaClusterHistogram;e[n.xlaCluster]=(e[n.xlaCluster]||0)+1}null!=n.stats&&i.parentNode.stats.combine(n.stats),i=i.parentNode}}))}function ug(e){const t=[],n={};return Ss.each(e.root.leaves(),(i=>{let r=e.node(i);if(r.type==Tf.OP){let i=r;if(!i.compatible)if(i.owningSeries){if(e.getSeriesGroupType(i.owningSeries)===If.UNGROUP)t.push(i);else if(!n[i.owningSeries]){let r=e.node(i.owningSeries);r&&(n[i.owningSeries]=r,t.push(r))}}else t.push(i);Ss.each(i.inEmbeddings,(e=>{e.compatible||t.push(e)})),Ss.each(i.outEmbeddings,(e=>{e.compatible||t.push(e)}))}})),t}function fg(e,t,n){const i=e.node(n);if(!(i instanceof Df))return;const r=[];Ss.each([t.nodes,t.metaNodes],(t=>{Ss.each(t,(t=>{var n;t.parentNode=i,r.push({idx:null!==(n=t.nodeAttributes._order)&&void 0!==n?n:0,name:t.name,node:t}),e.setNode(t.name,t)}))})),Ss.each(r.sort(((e,t)=>e.idx-t.idx)),(e=>{i.metagraph.setNode(e.name,e.node)}))}function gg(e,t,n){const i=e.node(n);i instanceof Df&&Ss.each(t.edges,(n=>{var r,o,a,s;if(!((null===(r=n.w)||void 0===r?void 0:r.includes(bf))||(null===(o=n.v)||void 0===o?void 0:o.includes(bf))||(n.v in t.nodes||n.v in t.metaNodes)&&(n.w in t.nodes||n.w in t.metaNodes)))return;const l=n.v,c=n.w;let d=i.metagraph.edge(l,c,null===(a=n.attr)||void 0===a?void 0:a.id);d||(d=Ff(l,c),i.metagraph.setEdge(l,c,d,null===(s=n.attr)||void 0===s?void 0:s.id)),d.addBaseEdge(n,e,!0)}))}function mg(e,t,n,i,r,o){let a=e.metagraph;Ss.each(a.nodes(),(e=>{let s=a.node(e);s.type===(Tf.META||Tf.API_LIST)&&mg(s,t,n,i,r,o)}));let s=function(e){return Ss.reduce(e.nodes(),((t,n)=>{let i=e.node(n);if(i.type===(Tf.META||Tf.API_LIST))return t;let r=i.op;return r&&(t[r]=t[r]||[],t[r].push(i.name)),t}),{})}(a),l=(o?yg:vg)(s,a,t.graphOptions);Ss.each(l,(function(e,r){let o=e.metagraph.nodes();Ss.each(o,(e=>{let t=a.node(e);t.owningSeries||(t.owningSeries=r)})),o.length<i&&t.getSeriesGroupType(e.name)===If.GROUP&&t.setSeriesGroupType(e.name,If.UNGROUP),t.getSeriesGroupType(e.name)!==If.UNGROUP&&(t.setNode(r,e),a.setNode(r,e),Ss.each(o,(t=>{let i=a.node(t);e.metagraph.setNode(t,i),e.parentNode=i.parentNode,e.cardinality++,null!=i.device&&(e.deviceHistogram[i.device]=(e.deviceHistogram[i.device]||0)+1),null!=i.xlaCluster&&(e.xlaClusterHistogram[i.xlaCluster]=(e.xlaClusterHistogram[i.xlaCluster]||0)+1),i.compatible?e.compatibilityHistogram.compatible=(e.compatibilityHistogram.compatible||0)+1:e.compatibilityHistogram.incompatible=(e.compatibilityHistogram.incompatible||0)+1,Ss.each(i.inEmbeddings,(t=>{t.compatible?e.compatibilityHistogram.compatible=(e.compatibilityHistogram.compatible||0)+1:e.compatibilityHistogram.incompatible=(e.compatibilityHistogram.incompatible||0)+1})),Ss.each(i.outEmbeddings,(t=>{t.compatible?e.compatibilityHistogram.compatible=(e.compatibilityHistogram.compatible||0)+1:e.compatibilityHistogram.incompatible=(e.compatibilityHistogram.incompatible||0)+1})),i.parentNode=e,n[t]=r,a.removeNode(t)})))}))}function vg(e,t,n){let i={};return Ss.each(e,(function(e,r){if(e.length<=1)return;let o={};Ss.each(e,(function(e){const t="*"===e.charAt(e.length-1),i=e.split("/"),r=i[i.length-1],a=i.slice(0,i.length-1).join("/"),s=r.match(/^(\D*)(\d+)$/);let l,c,d="";s?(l=s[1],c=s[2]):(l=t?r.substr(0,r.length-1):r,c=0,d=t?"*":"");const h=$f(l,d,a);o[h]=o[h]||[];const p=Uf(l,d,a,+c,e,n);o[h].push(p)})),Ss.each(o,(function(e,o){if(e.length<2)return;e.sort((function(e,t){return+e.clusterId-+t.clusterId}));let a=[e[0]];for(let o=1;o<e.length;o++){let s=e[o];s.clusterId!==a[a.length-1].clusterId+1?(_g(a,i,+r,t,n),a=[s]):a.push(s)}_g(a,i,+r,t,n)}))})),i}function yg(e,t,n){let i={};return Ss.each(e,(function(e,r){if(e.length<=1)return;let o={},a={};Ss.each(e,(function(e){let t="*"===e.charAt(e.length-1),i=e.split("/"),r=i[i.length-1],s=i.slice(0,i.length-1).join("/");const l=/(\d+)/g;let c,d,h,p,u,f=0;for(;c=l.exec(r);)++f,d=r.slice(0,c.index),h=c[0],p=r.slice(c.index+c[0].length),u=$f(d,p,s),o[u]=o[u],o[u]||(o[u]=Uf(d,p,s,+h,e,n)),o[u].ids.push(h),a[e]=a[e]||[],a[e].push([u,h]);f<1&&(d=t?r.substr(0,r.length-1):r,h=0,p=t?"*":"",u=$f(d,p,s),o[u]=o[u],o[u]||(o[u]=Uf(d,p,s,+h,e,n)),o[u].ids.push(h),a[e]=a[e]||[],a[e].push([u,h]))}));var s={};Ss.each(a,(function(e,t){e.sort((function(e,t){return o[t[0]].ids.length-o[e[0]].ids.length}));var i=e[0][0],r=e[0][1];s[i]=s[i]||[];const a=t.split("/"),l=(a[a.length-1],a.slice(0,a.length-1).join("/"));var c=Uf(o[i].prefix,o[i].suffix,l,+r,t,n);s[i].push(c)})),Ss.each(s,(function(e,o){if(e.length<2)return;e.sort((function(e,t){return+e.clusterId-+t.clusterId}));let a=[e[0]];for(let o=1;o<e.length;o++){let s=e[o];s.clusterId!==a[a.length-1].clusterId+1?(_g(a,i,+r,t,n),a=[s]):a.push(s)}_g(a,i,+r,t,n)}))})),i}function _g(e,t,n,i,r){if(e.length>1){let o=$f(e[0].prefix,e[0].suffix,e[0].parent,e[0].clusterId,e[e.length-1].clusterId),a=Uf(e[0].prefix,e[0].suffix,e[0].parent,n,o,r);Ss.each(e,(function(e){a.ids.push(e.clusterId),a.metagraph.setNode(e.name,i.node(e.name))})),t[o]=a}}var bg;!function(e){e[e.MODULE=0]="MODULE",e[e.DEFAULT=1]="DEFAULT",e[e.API_LIST=9]="API_LIST"}(bg||(bg={}));let xg={DEFAULT_FILL:"#ffffff",DEFAULT_STROKE:"#b2b2b2",COMPATIBLE:"#0f9d58",INCOMPATIBLE:"#db4437"},wg={DEFAULT_FILL:"#d9d9d9",DEFAULT_STROKE:"#a6a6a6",SATURATION:.6,LIGHTNESS:.85,EXPANDED_COLOR:"#f0f0f0",HUES:[220,100,180,40,20,340,260,300,140,60],STRUCTURE_PALETTE(e,t){let n=wg.HUES,i=n[e%n.length],r=Math.sin(i*Math.PI/360);return Ud(i,.01*(t?30:90-60*r),.01*(t?95:80)).toString()},DEVICE_PALETTE:e=>wg.STRUCTURE_PALETTE(e),XLA_CLUSTER_PALETTE:e=>wg.STRUCTURE_PALETTE(e),UNKNOWN:"#eee",GRADIENT_OUTLINE:"#888"},Sg={DEFAULT_FILL:"white",DEFAULT_STROKE:"#b2b2b2"};const Eg={minNodeCountForExtraction:15,minDegreeForExtraction:5,maxControlDegree:4,maxBridgePathDegree:4,outExtractTypes:["NoOp"],inExtractTypes:[],detachAllEdgesForHighDegree:!0,extractIsolatedNodesWithAnnotationsOnOneSide:!0,enableBridgegraph:!0,minMaxColors:["#fff5f0","#fb6a4a"],maxAnnotations:5},Cg=new RegExp("^(?:"+wf+")?(\\w+)_[a-z0-9]{8}(?:_\\d+)?$");class zg{constructor(e,t,n){this.hierarchy=e,this.displayingStats=t,this.autoExtractNodes=n,this.index={},this.toRenderEdgeObjs=[],this.renderedOpNames=[],this.computeScales(),this.hasSubhierarchy={},this.root=new Lg(e.root,e.graphOptions),this.index[e.root.name]=this.root,this.renderedOpNames.push(e.root.name),this.buildSubhierarchy(e.root.name),this.root.expanded=!0,this.traceInputs=!1}computeScales(){this.deviceColorMap=mp().domain(this.hierarchy.devices).range(Ss.map(ul(this.hierarchy.devices.length),wg.DEVICE_PALETTE));let e=this.hierarchy.root.metagraph,t=pl(e.nodes(),((t,n)=>{let i=e.node(t);if(null!=i.stats)return i.stats.totalBytes}));this.memoryUsageScale=Mp().domain([0,t]).range(Eg.minMaxColors);let n=pl(e.nodes(),((t,n)=>{let i=e.node(t);if(null!=i.stats)return i.stats.getTotalMicros()}));this.computeTimeScale=Mp().domain([0,n]).range(Eg.minMaxColors),this.edgeWidthSizedBasedScale=of}getRenderNodeByName(e){return this.index[e]}getNodeByName(e){return this.hierarchy.node(e)}colorHistogram(e,t){if(Object.keys(e).length>0){const n=Ss.sum(Object.keys(e).map((t=>e[t])));return Object.keys(e).map((i=>({color:t(i),proportion:e[i]/n})))}return null}getOrCreateRenderNodeByName(e){if(!e)return null;if(e in this.index)return this.index[e];let t=this.hierarchy.node(e);if(!t)return null;let n=t.isGroupNode?new Lg(t,this.hierarchy.graphOptions):new Tg(t);this.index[e]=n,this.renderedOpNames.push(e),t.stats&&(n.memoryColor=this.memoryUsageScale(t.stats.totalBytes),n.computeTimeColor=this.computeTimeScale(t.stats.getTotalMicros())),n.isFadedOut=this.displayingStats&&!mf(t.stats);var i=null,r=null;if(t.isGroupNode){i=t.deviceHistogram,t.xlaClusterHistogram;let e=t.compatibilityHistogram.compatible,n=t.compatibilityHistogram.incompatible;0==e&&0==n||(r=e/(e+n))}else{let e=n.node.device;e&&(i={[e]:1});n.node.xlaCluster;n.node.type===Tf.OP&&(r=n.node.compatible?1:0)}return i&&(n.deviceColors=this.colorHistogram(i,this.deviceColorMap)),null!=r&&(n.compatibilityColors=[{color:xg.COMPATIBLE,proportion:r},{color:xg.INCOMPATIBLE,proportion:1-r}]),this.index[e]}getNearestVisibleAncestor(e){let t=eg(e),n=0,i=null,r=e;for(;n<t.length&&(r=t[n],i=this.getRenderNodeByName(r),!i||i.expanded);n++);if(!i)return"";if(n==t.length-2){let e=t[n+1];if(null==i?void 0:i.inAnnotations.nodeNames[e])return e;if(null==i?void 0:i.outAnnotations.nodeNames[e])return e}return r}setDepth(e){Pg(this.root,+e)}isNodeAuxiliary(e){let t=this.getRenderNodeByName(e.node.parentNode.name),n=Ss.find(t.isolatedInExtract,(t=>t.node.name===e.node.name));return!!n||(n=Ss.find(t.isolatedOutExtract,(t=>t.node.name===e.node.name)),!!n)}getNamesOfRenderedOps(){return this.renderedOpNames}cloneAndAddFunctionOpNode(e,t,n,i){const r=n.name.replace(t,i);let o=e.metagraph.node(r);if(o)return o;o=new Rf({name:r,input:[],device:n.device,op:n.op,input_data:Ss.cloneDeep(n.inputData),output_data:Ss.cloneDeep(n.outputData),stack_info:Ss.cloneDeep(n.stackData),suggestions:Ss.cloneDeep(n.suggestions),isLeaf:!1,attr:Ss.cloneDeep(n.attr),node_type:bg.DEFAULT,matched_node_link:Ss.cloneDeep(n.matchedNodeLink)}),o.cardinality=n.cardinality,o.include=n.include,o.outputShapes=Ss.cloneDeep(n.outputShapes),o.xlaCluster=n.xlaCluster,o.functionInputIndex=n.functionInputIndex,o.functionOutputIndex=n.functionOutputIndex,o.inputs=n.inputs.map((e=>{const n=Ss.clone(e);return n.name=e.name.replace(t,i),n})),o.parentNode=e,e.metagraph.setNode(o.name,o),this.hierarchy.setNode(o.name,o);const a=n=>this.cloneAndAddFunctionOpNode(e,t,n,i);return o.inEmbeddings=n.inEmbeddings.map(a),o.outEmbeddings=n.outEmbeddings.map(a),o}cloneFunctionLibraryMetanode(e,t,n,i,r){const o={},a=this.cloneFunctionLibraryMetanodeHelper(e,t,n,i,r,o);return Ss.isEmpty(o)||this.patchEdgesFromFunctionOutputs(t,o),a}cloneFunctionLibraryMetanodeHelper(e,t,n,i,r,o){const a=Vf(n.name.replace(i,r));return a.depth=n.depth,a.cardinality=n.cardinality,a.templateId=n.templateId,a.opHistogram=Ss.clone(n.opHistogram),a.deviceHistogram=Ss.clone(n.deviceHistogram),a.xlaClusterHistogram=Ss.clone(n.xlaClusterHistogram),a.hasNonControlEdges=n.hasNonControlEdges,a.include=n.include,a.nodeAttributes=Ss.clone(n.nodeAttributes),a.associatedFunction=n.associatedFunction,Ss.each(n.metagraph.nodes(),(s=>{const l=n.metagraph.node(s);switch(l.type){case Tf.META:const n=this.cloneFunctionLibraryMetanodeHelper(e,t,l,i,r,o);n.parentNode=a,a.metagraph.setNode(n.name,n),this.hierarchy.setNode(n.name,n);break;case Tf.API_LIST:const s=this.cloneFunctionLibraryMetanodeHelper(e,t,l,i,r,o);s.parentNode=a,a.metagraph.setNode(s.name,s),this.hierarchy.setNode(s.name,s);break;case Tf.OP:const c=this.cloneAndAddFunctionOpNode(a,i,l,r);Ss.isNumber(c.functionInputIndex)&&this.patchEdgesIntoFunctionInputs(t,c),Ss.isNumber(c.functionOutputIndex)&&(o[c.functionOutputIndex]=c);break;default:console.warn(l.name+" is oddly neither a metanode nor an opnode.")}})),this.cloneLibraryMetanodeEdges(n,a,i,r),a}cloneLibraryMetanodeEdges(e,t,n,i){Ss.each(e.metagraph.edges(),(r=>{const o=e.metagraph.edge(r),a=o.v.replace(n,i),s=o.w.replace(n,i),l=new jf(a,s);l.inbound=o.inbound,l.numRegularEdges=o.numRegularEdges,l.numRefEdges=o.numRefEdges,l.totalSize=o.totalSize,o.baseEdgeList&&(l.baseEdgeList=o.baseEdgeList.map((e=>{const t=Ss.clone(e);return t.v=e.v.replace(n,i),t.w=e.w.replace(n,i),t}))),t.metagraph.node(s)?t.metagraph.setEdge(a,s,l):t.metagraph.setEdge(s,a,l)}))}patchEdgesIntoFunctionInputs(e,t){let n=Math.min(t.functionInputIndex,e.inputs.length-1),i=Ss.clone(e.inputs[n]);t.inputs.push(i);const r=this.hierarchy.getPredecessors(e.name);let o,a=0;Ss.each(r.regular,(e=>{if(a+=e.numRegularEdges,a>n)return o=e,!1})),Ss.each(o.baseEdgeList,(n=>{n.w===e.name&&(n.w=t.name),n.v===e.name&&(n.v=t.name)}))}patchEdgesFromFunctionOutputs(e,t){const n=this.hierarchy.getSuccessors(e.name);Ss.each(n.regular,(n=>{Ss.each(n.baseEdgeList,(n=>{const i=this.hierarchy.node(n.w);Ss.each(i.inputs,(i=>{if(i.name===e.name){const e=t[i.outputTensorKey];i.name=e.name,i.outputTensorKey=n.outputTensorKey}}))})),Ss.each(n.baseEdgeList,(e=>{e.v=t[e.outputTensorKey].name,e.outputTensorKey="0"}))}))}buildSubhierarchy(e,t=void 0){if(e in this.hasSubhierarchy)return;this.hasSubhierarchy[e]=!0;let n=this.index[e];if(n.node.type!==Tf.META&&n.node.type!==Tf.API_LIST&&n.node.type!==Tf.SERIES)return;let i=n,r=i.node.metagraph,o=i.coreGraph;Ss.each(r.nodes(),((e,n)=>{let i=this.getOrCreateRenderNodeByName(e);if(!i)return;let a=i.node;o.setNode(e,i),n>=1&&t&&Object.keys(t.metaNodes).length>0&&o.setEdge(r.nodes()[n-1],e,{}),a.isGroupNode||(Ss.each(a.inEmbeddings,(e=>{let t=new Ng(null),n=new Tg(e);Ig(i,e,n,t,Mg.CONSTANT),this.index[e.name]=n})),Ss.each(a.outEmbeddings,(e=>{let t=new Ng(null),n=new Tg(e);Og(i,e,n,t,Mg.SUMMARY),this.index[e.name]=n})))})),Ss.each(r.edges(),(e=>{if(e.v.includes(bf)||e.w.includes(bf)){if(e.w.includes(bf)){let t=e.w.split(bf);this.toRenderEdgeObjs.push({v:e.v,w:t[t.length-1],id:e.name,edge:r.edge(e)})}else{let t=e.v.split(bf);this.toRenderEdgeObjs.push({v:t[t.length-1],w:e.w,id:e.name,edge:r.edge(e)})}return}let t=r.edge(e),n=new Ng(t);n.isFadedOut=this.index[e.v].isFadedOut||this.index[e.w].isFadedOut,o.setEdge(e.v,e.w,n,e.name)}));let a=i.node.parentNode;if(!a)return;this.index[a.name];let s=(e,...t)=>t.concat([e?"IN":"OUT"]).join("~~");if(t){const i=Object.keys(t.metaNodes).concat(Object.keys(t.nodes));n.node.cardinality+=i.length;const r=a.metagraph,o=a.bridgegraph;Ss.each(i,(t=>{this.toRenderEdgeObjs.filter((e=>e.v===t||e.w===t)).forEach((n=>{var i,a;const s=n.edge,l=n.w===t,c=l?[null===(i=s.v)||void 0===i?void 0:i.split(bf)[0],e]:[e,null===(a=s.w)||void 0===a?void 0:a.split(bf)[0]];let d=r.edge(...c,n.id);(d||(d=o.edge(...c,n.id),d))&&Ss.each(s.baseEdgeList,(e=>{let n=l?e.v:e.w;e.attr?e.attr._path=n:e.attr={_path:n},l?(e.v=null==n?void 0:n.split(bf).pop(),e.w=t):(e.v=t,e.w=null==n?void 0:n.split(bf).pop()),d.addBaseEdge(e,this.hierarchy,!0)}))}))}))}this.toRenderEdgeObjs=this.toRenderEdgeObjs.filter((e=>!this.index[e.v]||!this.index[e.w]));let l=this.hierarchy.getBridgegraph(e),c={in:{},out:{},control:{}};Ss.each(l.edges(),(e=>{let t=!!r.node(e.w),n=t?e.v:e.w;l.edge(e).numRegularEdges?t?c.out[n]=(c.out[n]||0)+1:c.in[n]=(c.in[n]||0)+1:c.control[n]=(c.control[n]||0)+1})),this.hierarchy.getNodeMap(),Ss.each([!0,!1],(t=>{let n=s(t,e),i=o.node(n);i&&Ss.each(o.nodes(),(r=>{var a,l;if(o.node(r).node.type===Tf.BRIDGE)return;if(!(t?!(null===(a=o.predecessors(r))||void 0===a?void 0:a.length):!(null===(l=o.successors(r))||void 0===l?void 0:l.length)))return;let c=s(t,e,"STRUCTURAL_TARGET"),d=o.node(c);if(!d){let e={name:c,type:Tf.BRIDGE,isGroupNode:!1,cardinality:1,parentNode:null,stats:null,include:Nf.UNSPECIFIED,inbound:t,inputData:{},outputData:{},suggestions:{},nodeAttributes:{}};d=new Tg(e),d.structural=!0,this.index[c]=d,o.setNode(c,d),i.node.cardinality++,o.setParent(c,n)}let h=new Ng(null);h.structural=!0,h.weight--,t?o.setEdge(c,r,h):o.setEdge(r,c,h)}))}))}checkSubhierarchy(e){return e in this.hasSubhierarchy}removeSubhierarchy(e){console.log(this.index[e])}}class kg{constructor(e,t,n,i,r){this.node=e,this.renderNodeInfo=t,this.renderMetaedgeInfo=n,this.annotationType=i,this.dx=0,this.dy=0,this.width=0,this.height=0,n&&n.metaedge&&(this.v=n.metaedge.v,this.w=n.metaedge.w),this.isIn=r,this.points=[]}}var Mg;!function(e){e[e.SHORTCUT=0]="SHORTCUT",e[e.CONSTANT=1]="CONSTANT",e[e.SUMMARY=2]="SUMMARY",e[e.ELLIPSIS=3]="ELLIPSIS"}(Mg||(Mg={}));class Ag{constructor(){this.list=[],this.nodeNames={}}push(e){if(e.node.name in this.nodeNames)return;if(this.nodeNames[e.node.name]=!0,this.list.length<Eg.maxAnnotations)return void this.list.push(e);let t=this.list[this.list.length-1];if(t.annotationType===Mg.ELLIPSIS){let e=t.node;return void e.setNumMoreNodes(++e.numMoreNodes)}let n=new Hf(1);this.list.push(new kg(n,new Tg(n),null,Mg.ELLIPSIS,e.isIn))}}class Tg{constructor(e){if(this.node=e,this.expanded=!1,this.inAnnotations=new Ag,this.outAnnotations=new Ag,this.x=0,this.y=0,this.width=0,this.height=0,this.inboxWidth=0,this.outboxWidth=0,this.excluded=!1,this.structural=!1,this.labelOffset=0,this.radius=0,this.labelHeight=0,this.paddingTop=0,this.paddingLeft=0,this.paddingRight=0,this.paddingBottom=0,this.isInExtract=!1,this.isOutExtract=!1,this.coreBox={width:0,height:0},this.isFadedOut=!1,e.name.startsWith("B___")&&e.parentNode.name===xf)this.displayName="标杆";else{const t=e.name.split(".");if(t.length>3){const e=t[t.length-2];t.splice(t.length-2,1),t.splice(2,0,e),this.displayName=t.slice(1,t.length-1).join(".")}else e.name.startsWith("B___")||e.name.startsWith("N___")?this.displayName=e.name.slice(4):this.displayName=e.name}if(e.type===(Tf.META||Tf.API_LIST)&&e.associatedFunction){const e=this.displayName.match(Cg);e?this.displayName=e[1]:Ss.startsWith(this.displayName,wf)&&(this.displayName=this.displayName.substring(wf.length))}}isInCore(){return!this.isInExtract&&!this.isOutExtract&&!this.isLibraryFunction}}class Ng{constructor(e){this.metaedge=e,this.adjoiningMetaedge=null,this.structural=!1,this.weight=1,this.isFadedOut=!1}}function Ig(e,t,n,i,r){let o=new kg(t,n,i,r,!0);e.inAnnotations.push(o)}function Og(e,t,n,i,r){let o=new kg(t,n,i,r,!1);e.outAnnotations.push(o)}class Lg extends Tg{constructor(e,t){super(e);let n=e.metagraph.graph();this.coreGraph=Kf(n.name,Af.CORE,t),this.inExtractBox={width:0,height:0},this.outExtractBox={width:0,height:0},this.libraryFunctionsBox={width:0,height:0},this.isolatedInExtract=[],this.isolatedOutExtract=[],this.libraryFunctionsExtract=[]}}function Pg(e,t){e.coreGraph&&function(e,t){Ss.each(e.nodes(),(n=>{let i=e.node(n);if(i.expanded=t>1,t>0)switch(i.node.type){case Tf.META:case Tf.API_LIST:case Tf.SERIES:Pg(i,t-1)}}))}(e.coreGraph,t)}function Hg(e,t,n){let i=e.node(t),r=e.node(n),o=e.edge(t,n);(i.node.include!==Nf.INCLUDE&&r.node.include!==Nf.INCLUDE||i.node.include===Nf.EXCLUDE||r.node.include===Nf.EXCLUDE)&&(Og(i,r.node,r,o,Mg.SHORTCUT),Ig(r,i.node,i,o,Mg.SHORTCUT),e.removeEdge(t,n))}function Rg(e,t,n){var i;let r=e.coreGraph,o=r.node(t);o.isInExtract=!0,Ss.each(r.successors(t),((e,n)=>{Hg(r,t,e)})),(Eg.detachAllEdgesForHighDegree||n)&&Ss.each(r.predecessors(t),((e,n)=>{Hg(r,e,t)})),0===(null===(i=r.neighbors(t))||void 0===i?void 0:i.length)&&(o.node.include=Nf.EXCLUDE,e.isolatedInExtract.push(o),r.removeNode(t))}function Vg(e){return 1+579.2561679725*e%358}function Bg(e,t,n){const i=n.split("/"),r=i[i.length-1].match(/(.*):\w+/);2===(null==r?void 0:r.length)&&(i[i.length-1]=null==r?void 0:r[1]);let o=i[0],a=t.getRenderNodeByName(o);for(let n=1;n<i.length&&a.node.type!==Tf.OP;n++)t.buildSubhierarchy(o),a.expanded=!0,e.setNodeExpanded(a),o+="/"+i[n],a=t.getRenderNodeByName(o);return a.node.name}const Dg={animation:{duration:250},graph:{meta:{nodeSep:5,rankSep:25,edgeSep:5},series:{nodeSep:5,rankSep:25,edgeSep:5},padding:{paddingTop:40,paddingLeft:20}},subscene:{meta:{paddingTop:10,paddingBottom:10,paddingLeft:30,paddingRight:30,labelHeight:20,extractXOffset:15,extractYOffset:20},series:{paddingTop:10,paddingBottom:10,paddingLeft:10,paddingRight:10,labelHeight:10}},nodeSize:{meta:{radius:5,width:60,maxLabelWidth:200,height:Mp().domain([1,200]).range([15,60]).clamp(!0),expandButtonRadius:3},api_list:{radius:5,width:60,maxLabelWidth:200,height:Mp().domain([1,200]).range([15,60]).clamp(!0),expandButtonRadius:3},op:{width:30,height:12,radius:6,labelOffset:-12,maxLabelWidth:60},series:{expanded:{radius:10,labelOffset:0},vertical:{width:16,height:13,labelOffset:-13},horizontal:{width:24,height:8,radius:10,labelOffset:-10}},bridge:{width:20,height:20,radius:2,labelOffset:0}},shortcutSize:{op:{width:10,height:4},meta:{width:12,height:4,radius:1},series:{width:14,height:4},api_list:{width:12,height:4,radius:1}},annotations:{inboxWidth:50,outboxWidth:50,xOffset:10,yOffset:3,labelOffset:2,maxLabelWidth:40},constant:{size:{width:4,height:4}},series:{maxStackCount:3,parallelStackOffsetRatio:.2,towerStackOffsetRatio:.5},minimap:{size:150}},Fg=140;function jg(e){e.node.isGroupNode&&function(e){let t=e.coreGraph.nodes().map((t=>e.coreGraph.node(t))).concat(e.isolatedInExtract,e.isolatedOutExtract,e.libraryFunctionsExtract);Ss.each(t,(e=>{switch(e.node.type){case Tf.OP:Ss.extend(e,Dg.nodeSize.op);break;case Tf.BRIDGE:Ss.extend(e,Dg.nodeSize.bridge);break;case Tf.META:e.expanded?jg(e):(Ss.extend(e,Dg.nodeSize.meta),e.height=Dg.nodeSize.meta.height(e.node.cardinality),e.width=Math.max(e.width,6*Math.min(e.displayName.length,50)));break;case Tf.SERIES:if(e.expanded)Ss.extend(e,Dg.nodeSize.series.expanded),jg(e);else{let t=e.node.hasNonControlEdges?Dg.nodeSize.series.vertical:Dg.nodeSize.series.horizontal;Ss.extend(e,t)}break;case Tf.API_LIST:e.expanded?jg(e):(Ss.extend(e,Dg.nodeSize.meta),e.height=Dg.nodeSize.meta.height(e.node.cardinality),e.width=Math.max(e.width,6*Math.min(e.displayName.length,50)));break;default:throw Error("Unrecognized node type: "+e.node.type)}e.expanded||function(e){e.inboxWidth=e.inAnnotations.list.length>0?Dg.annotations.inboxWidth:0,e.outboxWidth=e.outAnnotations.list.length>0?Dg.annotations.outboxWidth:0,e.coreBox.width=e.width,e.coreBox.height=e.height;let t=e.displayName.length;const n=e.node.type===Tf.OP?Dg.nodeSize.op.maxLabelWidth:Dg.nodeSize.meta.maxLabelWidth;e.width=Math.max(e.coreBox.width+e.inboxWidth+e.outboxWidth,Math.min(6*t,n))}(e),function(e){if(e.expanded)return;let t=e.inAnnotations.list,n=e.outAnnotations.list;Ss.each(t,(e=>Gg(e))),Ss.each(n,(e=>Gg(e)));let i=Dg.annotations,r=Ss.reduce(t,((t,n,r)=>{let o=r>0?i.yOffset:0;return n.dx=-(e.coreBox.width+n.width)/2-i.xOffset,n.dy=t+o+n.height/2,t+o+n.height}),0);Ss.each(t,(e=>{e.dy-=r/2,e.labelOffset=i.labelOffset}));let o=Ss.reduce(n,((t,n,r)=>{let o=r>0?i.yOffset:0;return n.dx=(e.coreBox.width+n.width)/2+i.xOffset,n.dy=t+o+n.height/2,t+o+n.height}),0);Ss.each(n,(e=>{e.dy-=o/2,e.labelOffset=i.labelOffset}));let a=Math.min(e.height/2-e.radius,r/2);a=a<0?0:a;let s=Mp().domain([0,t.length-1]).range([-a,a]);Ss.each(t,((n,i)=>{n.points=[{dx:n.dx+n.width/2,dy:n.dy},{dx:-e.coreBox.width/2,dy:t.length>1?s(i):0}]}));let l=Math.min(e.height/2-e.radius,o/2);l=l<0?0:l;let c=Mp().domain([0,n.length-1]).range([-l,l]);Ss.each(n,((t,i)=>{t.points=[{dx:e.coreBox.width/2,dy:n.length>1?c(i):0},{dx:t.dx-t.width/2,dy:t.dy}]})),e.height=Math.max(e.height,r,o)}(e)}))}(e),e.node.type===Tf.META?$g(e):e.node.type===Tf.SERIES?function(e){let t=e.coreGraph,n=Dg.subscene.series;Ss.extend(e,n),Ss.extend(e.coreBox,Ug(e.coreGraph,Dg.graph.series)),Ss.each(t.nodes(),(e=>{t.node(e).excluded=!1})),e.width=e.coreBox.width+n.paddingLeft+n.paddingRight,e.height=e.coreBox.height+n.paddingTop+n.paddingBottom}(e):e.node.type===Tf.API_LIST&&$g(e)}function Ug(e,t){Ss.extend(e.graph(),{nodesep:t.nodeSep,ranksep:t.rankSep,edgesep:t.edgeSep});let n=[],i=[];if(Ss.each(e.nodes(),(t=>{e.node(t).node.type===Tf.BRIDGE?n.push(t):i.push(t)})),!i.length)return{width:0,height:0};Ku.layout(e);let r=1/0,o=1/0,a=-1/0,s=-1/0;return Ss.each(i,(t=>{let n=e.node(t),i=.5*n.width,l=n.x-i,c=n.x+i;r=l<r?l:r,a=c>a?c:a;let d=.5*n.height,h=n.y-d,p=n.y+d;o=h<o?h:o,s=p>s?p:s})),Ss.each(e.nodes(),(t=>{let n=e.node(t);n.x-=r,n.y-=o})),{width:a-r,height:s-o}}function $g(e){let t=Dg.subscene.meta;Ss.extend(e,t),Ss.extend(e.coreBox,Ug(e.coreGraph,Dg.graph.meta));let n=e.isolatedInExtract.length?Ss.maxBy(e.isolatedInExtract,(e=>e.width)).width:null;e.inExtractBox.width=null!=n?n:0,e.inExtractBox.height=Ss.reduce(e.isolatedInExtract,((e,n,i)=>{let r=i>0?t.extractYOffset:0;return n.x=0,n.y=e+r+n.height/2,e+r+n.height}),0);let i=e.isolatedOutExtract.length?Ss.maxBy(e.isolatedOutExtract,(e=>e.width)).width:null;e.outExtractBox.width=null!=i?i:0,e.outExtractBox.height=Ss.reduce(e.isolatedOutExtract,((e,n,i)=>{let r=i>0?t.extractYOffset:0;return n.x=0,n.y=e+r+n.height/2,e+r+n.height}),0);let r=e.libraryFunctionsExtract.length?Ss.maxBy(e.libraryFunctionsExtract,(e=>e.width)).width:null;e.libraryFunctionsBox.width=null!=r?r:0,e.libraryFunctionsBox.height=Ss.reduce(e.libraryFunctionsExtract,((e,n,i)=>{let r=i>0?t.extractYOffset:0;return n.x=0,n.y=e+r+n.height/2,e+r+n.height}),0);let o=0;e.isolatedInExtract.length>0&&o++,e.isolatedOutExtract.length>0&&o++,e.libraryFunctionsExtract.length>0&&o++,e.coreGraph.nodeCount()>0&&o++;let a=Dg.subscene.meta.extractXOffset,s=o<=1?0:o*a;e.coreBox.width+=s+e.libraryFunctionsBox.width+s,e.coreBox.height=t.labelHeight+Math.max(e.inExtractBox.height,e.coreBox.height,e.libraryFunctionsBox.height,e.outExtractBox.height),e.width=Math.max(6*e.displayName.length,e.coreBox.width)+t.paddingLeft+t.paddingRight,e.height=e.paddingTop+e.coreBox.height+e.paddingBottom}function Gg(e){switch(e.annotationType){case Mg.CONSTANT:Ss.extend(e,Dg.constant.size);break;case Mg.SHORTCUT:if(e.node.type===Tf.OP)Ss.extend(e,Dg.shortcutSize.op);else if(e.node.type===Tf.META)Ss.extend(e,Dg.shortcutSize.meta);else if(e.node.type===Tf.SERIES)Ss.extend(e,Dg.shortcutSize.series);else{if(e.node.type!==Tf.API_LIST)throw Error("Invalid node type: "+e.node.type);Ss.extend(e,Dg.shortcutSize.api_list)}break;case Mg.SUMMARY:Ss.extend(e,Dg.constant.size)}}function qg(e){if(e.expanded)return e.x;let t=e.inAnnotations.list.length?e.inboxWidth:0;return e.x-e.width/2+t+e.coreBox.width/2}const Xg=tf,Wg=Yu;let Kg=[{background_color:"#CC2F2C",label:"NaN"},{background_color:"#FF8D00",label:"-∞"},{background_color:"#EAEAEA",label:"-"},{background_color:"#A5A5A5",label:"0"},{background_color:"#262626",label:"+"},{background_color:"#003ED4",label:"+∞"}];function Yg(e,t,n){null!=e.attr("transform")&&(e=e.transition("position")),e.attr("transform","translate("+t+","+n+")")}function Jg(e,t,n,i,r){e.transition().attr("x",t-i/2).attr("y",n-r/2).attr("width",i).attr("height",r)}function Zg(e,t,n,i,r){e.transition().attr("cx",t).attr("cy",n).attr("rx",i/2).attr("ry",r/2)}function Qg(e,t){const n=e.getContextMenu(),i=Nh(e.getContextMenu());return function(r,o){let a=hc;const s=function(e){let t=0,n=0,i=e;for(;i&&i.offsetLeft>=0&&i.offsetTop>=0;)t+=i.offsetLeft-i.scrollLeft,n+=i.offsetTop-i.scrollTop,i=i.offsetParent;return{left:t,top:n}}(e);function l(e){e&&e.composedPath().includes(n)||(i.style("display","none"),document.body.removeEventListener("mousedown",l,{capture:!0}))}i.style("display","block").style("left",a.clientX-s.left+1+"px").style("top",a.clientY-s.top+1+"px"),a.preventDefault(),a.stopPropagation(),document.body.addEventListener("mousedown",l,{capture:!0}),i.text(""),i.append("ul").selectAll("li").data(t).enter().append("li").on("click",((e,t)=>{e.action(this,r,o),l()})).text((function(e){return e.title(r)}))}}let em=function e(){var t,n=0,i=1,r=1,o=[.5],a=[0,1];function s(e){return e<=e?a[al(o,e,0,r)]:t}function l(){var e=-1;for(o=new Array(r);++e<r;)o[e]=((e+1)*i-(e-r)*n)/(r+1);return s}return s.domain=function(e){return arguments.length?(n=+e[0],i=+e[1],l()):[n,i]},s.range=function(e){return arguments.length?(r=(a=up.call(e)).length-1,l()):a.slice()},s.invertExtent=function(e){var t=a.indexOf(e);return t<0?[NaN,NaN]:t<1?[n,o[0]]:t>=r?[o[r-1],i]:[o[t-1],o[t]]},s.unknown=function(e){return arguments.length?(t=e,s):s},s.thresholds=function(){return o.slice()},s.copy=function(){return e().domain([n,i]).range(a).unknown(t)},fp.apply(kp(s),arguments)}().domain([.75,12]).range(["small","medium","large","xlarge"]);function tm(e){return e.v+Mf+e.w+Mf+e.id}function nm(e,t){const n=e.outputTensorKey;let i=[];if(n&&n.startsWith("["))i=JSON.parse(n);else{let n=t.getNodeByName(e.v);if(null==n.outputShapes||Ss.isEmpty(n.outputShapes))return null;i=n.outputShapes[e.outputTensorKey]}return null==i?null:0===i.length?"scalar":i.map((e=>-1===e?"?":e)).join("×")}function im(e,t,n){const i=document.createElementNS("http://www.w3.org/2000/svg","path");for(let r=1;r<e.length;r++)if(i.setAttribute("d",n(e.slice(0,r))),i.getTotalLength()>t)return r-1;return e.length-1}function rm(e,t,n){let i=$p().x((e=>e.x)).y((e=>e.y)),r=Nh(document.createElementNS("http://www.w3.org/2000/svg","path")).attr("d",i(e)),o=+t.attr("markerWidth"),a=t.attr("viewBox").split(" ").map(Number),s=a[2]-a[0],l=+t.attr("refX"),c=r.node();if(n){const t=o*(1-l/s),n=c.getPointAtLength(t),r=im(e,t,i);return e[r-1]={x:n.x,y:n.y},e.slice(r-1)}{const t=1-l/s,n=c.getTotalLength()-o*t,r=c.getPointAtLength(n),a=im(e,n,i);return e[a]={x:r.x,y:r.y},e.slice(0,a+1)}}function om(e,t,n,i){i=i||Yu.Edge.LINE,t.label&&t.label.structural&&(i+=" "+Yu.Edge.STRUCTURAL),t.label&&t.label.metaedge&&t.label.metaedge.numRefEdges&&(i+=" "+Yu.Edge.REFERENCE_EDGE),n.handleEdgeSelected&&(i+=" "+Yu.Edge.SELECTABLE);let r,o="path_"+tm(t);if(n.renderHierarchy.edgeWidthFunction)r=n.renderHierarchy.edgeWidthFunction(t,i);else{let e=1;null!=t.label&&null!=t.label.metaedge&&(e=t.label.metaedge.totalSize),r=n.renderHierarchy.edgeWidthSizedBasedScale(e)}let a=e.append("path").attr("id",o).attr("class",i).style("stroke-width",r+"px");if(t.label&&t.label.metaedge)if(t.label.metaedge.numRefEdges){const e=`reference-arrowhead-${em(r)}`;a.style("marker-start",`url(#${e})`),t.label.startMarkerId=e}else{const e=`dataflow-arrowhead-${em(r)}`;a.style("marker-end",`url(#${e})`),t.label.endMarkerId=e}if(null==t.label||null==t.label.metaedge)return;let s=(l=t.label.metaedge,(c=n.renderHierarchy).edgeLabelFunction?c.edgeLabelFunction(l,c):l.baseEdgeList.length>1?l.baseEdgeList.length+" tensors":nm(l.baseEdgeList[0],c));var l,c;null!=s&&e.append("text").append("textPath").attr("xlink:href","#"+o).attr("startOffset","50%").attr("text-anchor","middle").attr("dominant-baseline","central").text(s)}let am=$p().curve((function(e){return new qp(e)})).x((e=>e.x)).y((e=>e.y));const sm={},lm=[];function cm(e,t,n){let i=nf(e,"g",Yu.Node.CONTAINER).selectAll((function(){return this.childNodes})).data(t,(e=>e.node.name+":"+e.node.type));return i.enter().append("g").attr("data-name",(e=>e.node.name)).each((function(e){let t=Nh(this);n.addNodeGroup(e.node.name,t)})).merge(i).attr("class",(e=>Yu.Node.GROUP+" "+bm(e))).each((function(e){let t=Nh(this);Tm(nf(t,"g",Yu.Annotation.INBOX),e.inAnnotations,e,n),Tm(nf(t,"g",Yu.Annotation.OUTBOX),e.outAnnotations,e,n);let i=_m(t,e,Yu.Node.SHAPE);e.node.isGroupNode&&function(e,t,n){let i=nf(e,"g",Yu.Node.BUTTON_CONTAINER);nf(i,"circle",Yu.Node.BUTTON_CIRCLE),nf(i,"path",Yu.Node.EXPAND_BUTTON).attr("d","M0,-2.2 V2.2 M-2.2,0 H2.2"),nf(i,"path",Yu.Node.COLLAPSE_BUTTON).attr("d","M-2.2,0 H2.2"),i.on("click",(e=>{hc.stopPropagation(),n.fire("node-toggle-expand",{name:e.node.name})})),function(e,t){let n=qg(t),i=t.expanded?t.width:t.coreBox.width,r=t.expanded?t.height:t.coreBox.height,o=n+i/2-6,a=t.y-r/2+6;t.node.type!==Tf.SERIES||t.expanded||(o+=10,a-=2);let s="translate("+o+","+a+")";e.selectAll("path").transition().attr("transform",s),e.select("circle").transition().attr({cx:o,cy:a,r:Dg.nodeSize.meta.expandButtonRadius})}(i,t)}(i,e,n),hm(i,e,n),function(e,t,n){if(t.node.isGroupNode){if(t.expanded)return Im(e,t,n,Yu.Subscene.GROUP);Xg(e,"g",Yu.Subscene.GROUP).remove()}}(t,e,n);let r=function(e,t,n){var i;let r=t.displayName,o=t.node.type===(Tf.META||Tf.API_LIST)&&!t.expanded,a=nf(e,"text",Yu.Node.LABEL),s=a.node();null===(i=s.parentNode)||void 0===i||i.appendChild(s),a.attr("dy",".35em").attr("text-anchor","middle");let l=8;switch(t.node.type){case Tf.META:l=t.expanded?Zu:Qu;break;case Tf.OP:l=ef;break;case Tf.API_LIST:l=t.expanded?Zu:Qu}if(o){r.length>n.maxMetanodeLabelLength&&(r=r.substr(0,n.maxMetanodeLabelLength-2)+"…");let e=function(e){return vm||(vm=Mp().domain([e.maxMetanodeLabelLengthLargeFont,e.maxMetanodeLabelLength]).range([e.maxMetanodeLabelLengthFontSize,e.minMetanodeLabelLengthFontSize]).clamp(!0)),vm}(n);a.attr("font-size",e(r.length)+"px"),l=e(r.length)}return mm(a.text(r),t.node.type,l,t),a}(t,e,n);hm(r,e,n,e.node.type===Tf.META),Em(t,e,n),function(e,t){let n=Xg(e,"g",Yu.Node.SHAPE),i=qg(t);switch(t.node.type){case Tf.OP:{const r=t.node;Ss.isNumber(r.functionInputIndex)||Ss.isNumber(r.functionOutputIndex)?function(e,t,n,i,r){const o=r/2,a=i/2,s=[[t,n-o],[t+a,n+o],[t-a,n+o]];e.transition().attr("points",s.map((e=>e.join(","))).join(" "))}(Xg(n,"polygon"),t.x,t.y,t.coreBox.width,t.coreBox.height):Zg(Xg(n,"ellipse"),i,t.y,t.coreBox.width,t.coreBox.height),ym(e,i,t.y,t.labelOffset);break}case Tf.META:{let r=n.selectAll("rect");t.expanded?(Jg(r,t.x,t.y,t.width,t.height),dm(e,t),ym(e,i,t.y,-t.height/2+t.labelHeight/2)):(Jg(r,i,t.y,t.coreBox.width,t.coreBox.height),ym(e,i,t.y,0));break}case Tf.SERIES:{let r=Xg(n,"use");t.expanded?(Jg(r,t.x,t.y,t.width,t.height),dm(e,t),ym(e,i,t.y,-t.height/2+t.labelHeight/2)):(Jg(r,i,t.y,t.coreBox.width,t.coreBox.height),ym(e,i,t.y,t.labelOffset));break}case Tf.BRIDGE:Jg(Xg(n,"rect"),t.x,t.y,t.width,t.height);break;case Tf.API_LIST:{let r=n.selectAll("rect");t.expanded?(Jg(r,t.x,t.y,t.width,t.height),dm(e,t),ym(e,i,t.y,-t.height/2+t.labelHeight/2)):(Jg(r,i,t.y,t.coreBox.width,t.coreBox.height),ym(e,i,t.y,0));break}default:throw Error("Unrecognized node type: "+t.node.type)}}(t,e)})),i.exit().each((function(e){n.removeNodeGroup(e.node.name);let t=Nh(this);e.inAnnotations.list.length>0&&t.select("."+Yu.Annotation.INBOX).selectAll("."+Yu.Annotation.GROUP).each((t=>{n.removeAnnotationGroup(t,e)})),e.outAnnotations.list.length>0&&t.select("."+Yu.Annotation.OUTBOX).selectAll("."+Yu.Annotation.GROUP).each((t=>{n.removeAnnotationGroup(t,e)}))})).remove(),i}function dm(e,t){let n=t.x-t.coreBox.width/2,i=t.y-t.height/2+t.paddingTop;Yg(Xg(e,"g",Yu.Subscene.GROUP),n,i)}function hm(e,t,n,i){if(i)return void e.attr("pointer-events","none");let r=Qg(n,pm(t.node,n));var o;let a,s,l=!1;e.on("dblclick",(e=>{clearTimeout(o),n.fire("node-toggle-expand",{name:e.node.name})})).on("mouseover",(e=>{n.isNodeExpanded(e)||n.fire("node-highlight",{name:e.node.name})})).on("mouseout",(e=>{n.isNodeExpanded(e)||n.fire("node-unhighlight",{name:e.node.name})})).on("mousedown",(()=>{a=hc.clientX,s=hc.clientY,l=!1})).on("mouseup",(()=>{const e=Math.abs(hc.clientX-a),t=Math.abs(hc.clientY-s);(e>5||t>5)&&(l=!0)})).on("click",(e=>{clearTimeout(o),l?l=!1:o=setTimeout((function(){n.fire("node-select",{name:e.node.name})}),300)})).on("contextmenu",((e,t)=>{n.fire("node-select",{name:e.node.name}),r.call(e,t)}))}function pm(e,t){let n=[{title:t=>tg(e.include),action:(n,i,r)=>{t.fire("node-toggle-extract",{name:e.name})}}];return t.nodeContextMenuItems&&(n=n.concat(t.nodeContextMenuItems)),um(e)&&n.push({title:t=>gm(e),action:(n,i,r)=>{t.fire("node-toggle-seriesgroup",{name:fm(e)})}}),n}function um(e){return null!==fm(e)}function fm(e){return e?e.type===Tf.SERIES?e.name:e.type===Tf.OP?e.owningSeries:null:null}function gm(e){return ng(null!==function(e){let t=null;return e?(e.type===Tf.SERIES?t=e:e.parentNode&&e.parentNode.type===Tf.SERIES&&(t=e.parentNode),t):null}(e)?If.GROUP:If.UNGROUP)}function mm(e,t,n,i){let r=e.node(),o=r.textContent,a=null;switch(t){case Tf.META:i&&!i.expanded&&(a=Dg.nodeSize.meta.maxLabelWidth);break;case Tf.API_LIST:i&&!i.expanded&&(a=Dg.nodeSize.api_list.maxLabelWidth);break;case Tf.OP:a=Dg.nodeSize.op.maxLabelWidth;break;case-1:a=Dg.annotations.maxLabelWidth}if(null!==a)return r.textContent=function(e,t,n){if(!e)return"";if(yf(e,t)<=n)return e;let i=0,r=e.length;for(;i<r;){const o=i+Math.round((r-i)/2);yf(e.slice(0,o)+"…",t)<=n?i=o:r=o-1}return 0===i?e[0]:e.slice(0,i)+"…"}(r.textContent,n,a),e.append("title").text(o)}let vm=null;function ym(e,t,n,i){Xg(e,"text",Yu.Node.LABEL).transition().attr("x",t).attr("y",n+i)}function _m(e,t,n){let i=nf(e,"g",n);switch(t.node.type){case Tf.OP:const e=t.node;if(Ss.isNumber(e.functionInputIndex)||Ss.isNumber(e.functionOutputIndex)){nf(i,"polygon",Yu.Node.COLOR_TARGET);break}nf(i,"ellipse",Yu.Node.COLOR_TARGET);break;case Tf.SERIES:let n="annotation",r=t;r.coreGraph&&(n=r.node.hasNonControlEdges?"vertical":"horizontal");let o=[Yu.Node.COLOR_TARGET];r.isFadedOut&&o.push("faded-ellipse"),nf(i,"use",o).attr("xlink:href","#op-series-"+n+"-stamp"),nf(i,"rect",Yu.Node.COLOR_TARGET).attr("rx",t.radius).attr("ry",t.radius);break;case Tf.BRIDGE:case Tf.META:case Tf.API_LIST:nf(i,"rect",Yu.Node.COLOR_TARGET).attr("rx",t.radius).attr("ry",t.radius);break;default:throw Error("Unrecognized node type 3: "+t.node.type)}return i}function bm(e){switch(e.node.type){case Tf.OP:return Yu.OPNODE;case Tf.META:return Yu.METANODE;case Tf.SERIES:return Yu.SERIESNODE;case Tf.BRIDGE:return Yu.BRIDGENODE;case Tf.ELLIPSIS:return Yu.ELLIPSISNODE;case Tf.API_LIST:return Yu.API_LIST}throw Error("Unrecognized node type: "+e.node.type)}function xm(e){Nh(e).select("defs#_graph-gradients").remove()}function wm(e){const t=Number(e);if(0!=Object.entries(sm).length){for(const[e,n]of Object.entries(sm)){const i=[n],[r,o]=i[0].value;if(r==o){if(t==r)return e}else{if(t>=1)return Object.entries(sm)[Object.entries(sm).length-2][0];if(t>=r&&t<o||t==o&&1==o)return e}}return"white"}return isNaN(t)?"white":t<=.2?"#ff704d":t<=.4?"#FFC62E":t<=.6?"#FFDC7F":t<=.8?"#FFEDBE":"#FFFCF3"}function Sm(e){if(e.node instanceof Rf||e.node instanceof Df){const t=e.node.attr.find((e=>e.key===Cf)),n=e.node.matchedNodeLink,i=lm.find((t=>Array.isArray(t)&&t[0]===e.node.name));return i?wm(i[1]):!e.node.name.startsWith("B___")&&!e.node.name.startsWith("N___")||n||e.node.name.startsWith("B___")?t?wm(t.value):"white":"#C7C7C7"}return"white"}function Em(e,t,n,i){i=i||Yu.Node.SHAPE;const r=n.isNodeHighlighted(t.node.name),o=n.isNodeSelected(t.node.name),a=t.isInExtract||t.isOutExtract||t.isLibraryFunction,s=t.expanded&&i!==Yu.Annotation.NODE,l=t.isFadedOut,c=n.isNodeLinked(t.node.name);e.classed("highlighted",r),e.classed("selected",o),e.classed("extract",a),e.classed("expanded",s),e.classed("faded",l),e.classed("linked",c);const d=e.select("."+i+" ."+Yu.Node.COLOR_TARGET),h=Sm(t);d.style("fill",h),d.style("stroke",o?null:Cm(h))}function Cm(e){return"url"===e.substring(0,3)?wg.GRADIENT_OUTLINE:e.startsWith("rgba")?"rgb(167, 167, 167)":Hd(e).darker().toString()}function zm(e,t,n,i){const r=Nh(e);if(r.selectAll(".input-highlight").classed("input-highlight",!1),r.selectAll(".non-input").classed("non-input",!1),r.selectAll(".input-parent").classed("input-parent",!1),r.selectAll(".input-child").classed("input-child",!1),r.selectAll(".input-edge-highlight").classed("input-edge-highlight",!1),r.selectAll(".non-input-edge-highlight").classed("non-input-edge-highlight",!1),r.selectAll(".input-highlight-selected").classed("input-highlight-selected",!1),!t||!i||!n)return;let o=km(n,t),a={};Ss.each(o,(function(n){a=Mm(e,t,n,a)}));let s=Object.keys(a),l=function(e,t){let n={};return Ss.each(t,(function(t){let i=e.getNodeByName(t),r=Am(e,i);n[r.name]=r})),n}(t,s);!function(e,t){Ss.forOwn(t,(function(t){let n=t;for(;n.name!==xf;){const t=Nh(e).select(`.node[data-name="${n.name}"]`);!t.nodes().length||t.classed("input-highlight")||t.classed("selected")||t.classed("op")||t.classed("input-parent",!0),n=n.parentNode}}))}(e,l),r.selectAll("g.node:not(.selected):not(.input-highlight):not(.input-parent):not(.input-children)").classed("non-input",!0).each((function(e){let t=e.node.name;r.selectAll(`[data-name="${t}"]`).classed("non-input",!0)})),r.selectAll("g.edge:not(.input-edge-highlight)").classed("non-input-edge-highlight",!0)}function km(e,t){let n=[],i=t.getNodeByName(e);if(i instanceof Rf)return[i].concat(i.inEmbeddings);let r=i.metagraph.nodes();return Ss.each(r,(function(e){n=n.concat(km(e,t))})),n}function Mm(e,t,n,i){if(i[n.name])return i;i[n.name]=!0;let r=n.inputs,o=Am(t,n);Nh(e).select(`.node[data-name="${o.name}"]`).classed("input-highlight",!0);let a={};Ss.each(r,(function(e){let n=t.getNodeByName(e.name);if(void 0===n)return;if(n instanceof Df){let e=Jf(n.name);n=t.getNodeByName(e)}let i=Am(t,n),r=a[i.name];r?r.opNodes.push(n):a[i.name]={visibleParent:i,opNodes:[n]}}));let s={},l=[o];s[o.name]={traced:!1,index:0,connectionEndpoints:[]};let c=o;for(let e=1;c.name!==xf;e++)c=c.parentNode,s[c.name]={traced:!1,index:e,connectionEndpoints:[]},l[e]=c;return Ss.forOwn(a,(function(n,r){let a=n.visibleParent;Ss.each(n.opNodes,(function(n){i=Mm(e,t,n,i)})),a.name!==o.name&&function(e,t,n,i){let r=t,o=t,a=[];for(;!n[r.name];)o.name!==r.name&&a.push([o,r]),o=r,r=r.parentNode;let s=n[r.name].index,l=i[Math.max(s-1,0)].name,c=l,d=o.name,h=o.name;const p=Nh(e);p.selectAll(`[data-edge="${h}--${l}"]`).classed("input-edge-highlight",!0),Ss.each(a,(function(e){let t=e[0],n=e[1],i=`[data-edge="${t.name}--${c}~~${n.name}~~OUT"]`;p.selectAll(i).classed("input-edge-highlight",!0)}));for(let e=1;e<s;e++){let t=i[e-1],n=`[data-edge="${d}~~${i[e].name}~~IN--${t.name}"]`;p.selectAll(n).classed("input-edge-highlight",!0)}}(e,a,s,l)})),i}function Am(e,t){let n=!1,i=t;for(;!n;)if(i=(t=i).parentNode,void 0===i)n=!0;else{let t=e.getRenderNodeByName(i.name);t&&(t.expanded||i instanceof Rf)&&(n=!0)}return t}function Tm(e,t,n,i){let r=e.selectAll((function(){return this.childNodes})).data(t.list,(e=>e.node.name));return r.enter().append("g").attr("data-name",(e=>e.node.name)).each((function(e){let t=Nh(this);i.addAnnotationGroup(e,n,t);let r=Yu.Annotation.EDGE,o=e.renderMetaedgeInfo&&e.renderMetaedgeInfo.metaedge;o&&!o.numRegularEdges&&(r+=" "+Yu.Annotation.CONTROL_EDGE),o&&o.numRefEdges&&(r+=" "+Yu.Edge.REF_LINE),om(t,e,i,r),e.annotationType!==Mg.ELLIPSIS?(function(e,t){let n=t.node.name.split("/");Nm(e,n[n.length-1],t,null)}(t,e),function(e,t){t.annotationType===Mg.SUMMARY?nf(e,"use").attr("class","summary").attr("xlink:href","#summary-icon").attr("cursor","pointer"):nf(_m(e,t,Yu.Annotation.NODE),"title").text(t.node.name)}(t,e)):Nm(t,e.node.name,e,Yu.Annotation.ELLIPSIS)})).merge(r).attr("class",(e=>{return Yu.Annotation.GROUP+" "+(t=e.annotationType,((Mg[t]||"").toLowerCase()||null)+" ")+bm(e);var t})).each((function(e){let t=Nh(this);!function(e,t,n,i){let r=qg(t);n.renderNodeInfo&&n.annotationType!==Mg.ELLIPSIS&&Em(e,n.renderNodeInfo,i,Yu.Annotation.NODE),n.annotationType===Mg.SUMMARY&&(n.width+=10),e.select("text."+Yu.Annotation.LABEL).transition().attr("x",r+n.dx+(n.isIn?-1:1)*(n.width/2+n.labelOffset)).attr("y",t.y+n.dy),e.select("use.summary").transition().attr("x",r+n.dx-3).attr("y",t.y+n.dy-6),Zg(e.select("."+Yu.Annotation.NODE+" ellipse"),r+n.dx,t.y+n.dy,n.width,n.height),Jg(e.select("."+Yu.Annotation.NODE+" rect"),r+n.dx,t.y+n.dy,n.width,n.height),Jg(e.select("."+Yu.Annotation.NODE+" use"),r+n.dx,t.y+n.dy,n.width,n.height),e.select("path."+Yu.Annotation.EDGE).transition().attr("d",(e=>{let n=e.points.map((e=>({x:e.dx+r,y:e.dy+t.y})));return am(n)}))}(t,n,e,i),e.annotationType!==Mg.ELLIPSIS&&function(e,t,n,i){e.on("mouseover",(e=>{i.fire("annotation-highlight",{name:e.node.name,hostName:t.node.name})})).on("mouseout",(e=>{i.fire("annotation-unhighlight",{name:e.node.name,hostName:t.node.name})})).on("click",(e=>{hc.stopPropagation(),i.fire("annotation-select",{name:e.node.name,hostName:t.node.name})})),n.annotationType!==Mg.SUMMARY&&n.annotationType!==Mg.CONSTANT&&e.on("contextmenu",Qg(i,pm(n.node,i)))}(t,n,e,i)})),r.exit().each((function(e){i.removeAnnotationGroup(e,n)})).remove(),r}function Nm(e,t,n,i){let r=Yu.Annotation.LABEL;return i&&(r+=" "+i),mm(e.append("text").attr("class",r).attr("dy",".35em").attr("text-anchor",n.isIn?"end":"start").text(t),-1,Ju)}function Im(e,t,n,i){let r=tf(e,"g",i=i||Yu.Scene.GROUP).empty(),o=nf(e,"g",i),a=nf(o,"g",Yu.Scene.CORE),s=Ss.reduce(t.coreGraph.nodes(),((e,n)=>{let i=t.coreGraph.node(n);return i.excluded||e.push(i),e}),Array());return t.node.type===Tf.SERIES&&s.reverse(),function(e,t,n){const i=n;let r=[];r=Ss.reduce(t.edges(),((e,n)=>{let i=t.edge(n);return e.push({v:n.v,w:n.w,id:n.name,label:i}),e}),r);let o=nf(e,"g",Yu.Edge.CONTAINER).selectAll((function(){return this.childNodes})).data(r,tm);o.enter().append("g").attr("class",Yu.Edge.GROUP).attr("data-edge",tm).each((function(e){let t=Nh(this);e.label.edgeGroup=t,i._edgeGroupIndex[tm(e)]=t,t.on("click",(e=>{hc.stopPropagation(),i.fire("edge-select",{edgeData:e,edgeGroup:t})})).on("mouseover",(e=>{n.fire("edge-highlight",{edgeData:e,edgeGroup:t})})).on("mouseout",(e=>{n.fire("edge-unhighlight",{edgeData:e,edgeGroup:t})})),om(t,e,i)})).merge(o).each((function(){var e;e=n,Nh(this).select("path."+Yu.Edge.LINE).transition().attrTween("d",(function(t,n,i){return function(e,t,n,i,r){let o=n.label,a=o.adjoiningMetaedge,s=o.points;const{shadowRoot:l}=e;if(n.label.startMarkerId&&(s=rm(s,Nh(null==l?void 0:l.querySelector("#"+n.label.startMarkerId)),!0)),n.label.endMarkerId&&(s=rm(s,Nh(null==l?void 0:l.querySelector("#"+n.label.endMarkerId)),!1)),!a)return sp(r,am(s));let c=a.edgeGroup.node().firstChild,d=o.metaedge.inbound;return function(e){var n;let i=c.getPointAtLength(d?c.getTotalLength():0).matrixTransform(c.getCTM()).matrixTransform(null===(n=t.getCTM())||void 0===n?void 0:n.inverse()),r=d?0:s.length-1;return s[r].x=i.x,s[r].y=i.y,am(s)}}(e,this,t,0,i)}))})).each((function(e){!function(e,t){e.classed("faded",t.label.isFadedOut);let n=t.label.metaedge;e.select("path."+Yu.Edge.LINE).classed("control-dep",n&&!n.numRegularEdges)}(Nh(this),e)})),o.exit().each((e=>{delete i._edgeGroupIndex[tm(e)]})).remove()}(a,t.coreGraph,n),cm(a,s,n),t.isolatedInExtract.length>0?cm(nf(o,"g",Yu.Scene.INEXTRACT),t.isolatedInExtract,n):tf(o,"g",Yu.Scene.INEXTRACT).remove(),t.isolatedOutExtract.length>0?cm(nf(o,"g",Yu.Scene.OUTEXTRACT),t.isolatedOutExtract,n):tf(o,"g",Yu.Scene.OUTEXTRACT).remove(),t.libraryFunctionsExtract.length>0?cm(nf(o,"g",Yu.Scene.FUNCTION_LIBRARY),t.libraryFunctionsExtract,n):tf(o,"g",Yu.Scene.FUNCTION_LIBRARY).remove(),function(e,t){let n=t.node.type===Tf.SERIES?0:Dg.subscene.meta.labelHeight;Yg(Xg(e,"g",Wg.Scene.CORE),0,n);let i=t.isolatedInExtract.length>0,r=t.isolatedOutExtract.length>0,o=t.libraryFunctionsExtract.length>0,a=Dg.subscene.meta.extractXOffset,s=0;if(i&&(s+=t.outExtractBox.width),r&&(s+=t.outExtractBox.width),i){let i=t.coreBox.width;i=s<Fg?i-Fg+t.inExtractBox.width/2:i-t.inExtractBox.width/2-t.outExtractBox.width-(r?a:0),i=i-t.libraryFunctionsBox.width-(o?a:0),Yg(Xg(e,"g",Wg.Scene.INEXTRACT),i,n)}if(r){let i=t.coreBox.width;s<Fg?i=i-Fg+t.outExtractBox.width/2:i-=t.outExtractBox.width/2,i=i-t.libraryFunctionsBox.width-(o?a:0),Yg(Xg(e,"g",Wg.Scene.OUTEXTRACT),i,n)}if(o){let i=t.coreBox.width-t.libraryFunctionsBox.width/2;Yg(Xg(e,"g",Wg.Scene.FUNCTION_LIBRARY),i,n)}}(o,t),r&&o.attr("opacity",0).transition().attr("opacity",1),o}function Om(e){Object.keys(lm).forEach((e=>delete lm[e])),Object.assign(lm,e)}class Lm{constructor(e,t,n,i,r,o){this.svg=e,this.labelPadding=o,this.zoomG=t,this.mainZoom=n,this.maxWandH=r;let a=Nh(i.shadowRoot),s=a.select("svg"),l=s.select("rect");this.viewpointCoord={x:0,y:0};let c=function(){var e,t,n,i,r=Bh,o=Dh,a=Fh,s=jh,l={},c=Ac("start","drag","end"),d=0,h=0;function p(e){e.on("mousedown.drag",u).filter(s).on("touchstart.drag",m).on("touchmove.drag",v).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function u(){if(!i&&r.apply(this,arguments)){var a=_("mouse",o.apply(this,arguments),Th,this,arguments);a&&(Nh(hc.view).on("mousemove.drag",f,!0).on("mouseup.drag",g,!0),Ph(hc.view),Oh(),n=!1,e=hc.clientX,t=hc.clientY,a("start"))}}function f(){if(Lh(),!n){var i=hc.clientX-e,r=hc.clientY-t;n=i*i+r*r>h}l.mouse("drag")}function g(){Nh(hc.view).on("mousemove.drag mouseup.drag",null),Hh(hc.view,n),Lh(),l.mouse("end")}function m(){if(r.apply(this,arguments)){var e,t,n=hc.changedTouches,i=o.apply(this,arguments),a=n.length;for(e=0;e<a;++e)(t=_(n[e].identifier,i,Ih,this,arguments))&&(Oh(),t("start"))}}function v(){var e,t,n=hc.changedTouches,i=n.length;for(e=0;e<i;++e)(t=l[n[e].identifier])&&(Lh(),t("drag"))}function y(){var e,t,n=hc.changedTouches,r=n.length;for(i&&clearTimeout(i),i=setTimeout((function(){i=null}),500),e=0;e<r;++e)(t=l[n[e].identifier])&&(Oh(),t("end"))}function _(e,t,n,i,r){var o,s,h,u=n(t,e),f=c.copy();if(mc(new Vh(p,"beforestart",o,e,d,u[0],u[1],0,0,f),(function(){return null!=(hc.subject=o=a.apply(i,r))&&(s=o.x-u[0]||0,h=o.y-u[1]||0,!0)})))return function a(c){var g,m=u;switch(c){case"start":l[e]=a,g=d++;break;case"end":delete l[e],--d;case"drag":u=n(t,e),g=d}mc(new Vh(p,c,o,e,g,u[0]+s,u[1]+h,u[0]-m[0],u[1]-m[1],f),f.apply,f,[c,i,r])}}return p.filter=function(e){return arguments.length?(r="function"==typeof e?e:Rh(!!e),p):r},p.container=function(e){return arguments.length?(o="function"==typeof e?e:Rh(e),p):o},p.subject=function(e){return arguments.length?(a="function"==typeof e?e:Rh(e),p):a},p.touchable=function(e){return arguments.length?(s="function"==typeof e?e:Rh(!!e),p):s},p.on=function(){var e=c.on.apply(c,arguments);return e===c?p:e},p.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,p):Math.sqrt(h)},p}().subject(Object).on("drag",(e=>{this.viewpointCoord.x=hc.x,this.viewpointCoord.y=hc.y,this.updateViewpoint()}));l.datum(this.viewpointCoord).call(c),s.on("click",(()=>{if(hc.defaultPrevented)return;let e=Number(l.attr("width")),t=Number(l.attr("height")),n=Th(s.node());this.viewpointCoord.x=n[0]-e/2,this.viewpointCoord.y=n[1]-t/2,this.updateViewpoint()})),this.viewpoint=l.node(),this.minimapSvg=s.node(),this.minimap=i,this.canvas=a.select("canvas.first").node(),this.canvasBuffer=a.select("canvas.second").node(),this.downloadCanvas=a.select("canvas.download").node(),Nh(this.downloadCanvas).style("display","none"),this.update()}updateViewpoint(){Nh(this.viewpoint).attr("x",this.viewpointCoord.x).attr("y",this.viewpointCoord.y);let e=-this.viewpointCoord.x*this.scaleMain/this.scaleMinimap,t=-this.viewpointCoord.y*this.scaleMain/this.scaleMinimap;Nh(this.svg).call(this.mainZoom.transform,Hu.translate(e,t).scale(this.scaleMain))}getImageBlob(){return new Promise((e=>{this.downloadCanvas.toBlob((t=>{e(t)}),"image/png")}))}update(){let e=null;try{if(e=this.zoomG.getBBox(),0===e.width)return}catch(e){return}let t=Nh(this.svg),n="";const i=this.svg,r=(i.getRootNode?i.getRootNode():this.svg.parentNode).styleSheets;for(let e=0;e<r.length;e++)try{let t=r[e].cssRules||r[e].rules;if(null==t)continue;for(let e=0;e<t.length;e++)n+=t[e].cssText.replace(/ ?tf-[\w-]+ ?/g,"")+"\n"}catch(e){if("SecurityError"!==e.name)throw e}let o=t.append("style");o.text(n);let a=Nh(this.zoomG),s=a.attr("transform");a.attr("transform",null),e.height+=e.y,e.width+=e.x,e.height+=2*this.labelPadding,e.width+=2*this.labelPadding,t.attr("width",e.width).attr("height",e.height),this.scaleMinimap=this.maxWandH/Math.max(e.width,e.height),this.minimapSize={width:e.width*this.scaleMinimap,height:e.height*this.scaleMinimap},Nh(this.minimapSvg).attr(this.minimapSize),Nh(this.canvasBuffer).attr(this.minimapSize);const l=Nh(this.downloadCanvas);l.style("width",e.width),l.style("height",e.height),l.attr("width",3*e.width),l.attr("height",3*e.height),null!=this.translate&&null!=this.zoom&&requestAnimationFrame((()=>this.zoom()));let c=(new XMLSerializer).serializeToString(this.svg);o.remove(),t.attr("width",null).attr("height",null),a.attr("transform",s);let d=new Image;d.onload=()=>{let e=this.canvasBuffer.getContext("2d");null==e||e.clearRect(0,0,this.canvasBuffer.width,this.canvasBuffer.height),null==e||e.drawImage(d,0,0,this.minimapSize.width,this.minimapSize.height),requestAnimationFrame((()=>{Nh(this.canvasBuffer).style("display",null),Nh(this.canvas).style("display","none"),[this.canvas,this.canvasBuffer]=[this.canvasBuffer,this.canvas]}));let t=this.downloadCanvas.getContext("2d");null==t||t.clearRect(0,0,this.downloadCanvas.width,this.downloadCanvas.height),null==t||t.drawImage(d,0,0,this.downloadCanvas.width,this.downloadCanvas.height)},d.onerror=()=>{let e=new Blob([c],{type:"image/svg+xml;charset=utf-8"});d.src=URL.createObjectURL(e)},d.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(c)}zoom(e){if(null==this.scaleMinimap)return;e&&(this.translate=[e.x,e.y],this.scaleMain=e.k);let t=this.svg.getBoundingClientRect(),n=Nh(this.viewpoint);this.viewpointCoord.x=-this.translate[0]*this.scaleMinimap/this.scaleMain,this.viewpointCoord.y=-this.translate[1]*this.scaleMinimap/this.scaleMain;let i=t.width*this.scaleMinimap/this.scaleMain,r=t.height*this.scaleMinimap/this.scaleMain;n.attr("x",this.viewpointCoord.x).attr("y",this.viewpointCoord.y).attr("width",i).attr("height",r);let o=this.minimapSize.width,a=this.minimapSize.height,s=this.viewpointCoord.x,l=this.viewpointCoord.y;(Math.min(Math.max(0,s+i),o)-Math.min(Math.max(0,s),o))*(Math.min(Math.max(0,l+r),a)-Math.min(Math.max(0,l),a))/(o*a)<.8?this.minimap.classList.remove("hidden"):this.minimap.classList.add("hidden")}}let Pm=class extends Pt{init(e,t,n,i,r){return new Lm(e,t,n,this,i,r)}};Pm.template=Ot`
    <style>
      :host {
        background-color: white;
        transition: opacity 0.3s linear;
        pointer-events: auto;
      }

      :host(.hidden) {
        opacity: 0;
        pointer-events: none;
      }

      canvas {
        border: 1px solid #999;
      }

      rect {
        fill: white;
        stroke: #111111;
        stroke-width: 1px;
        fill-opacity: 0;
        filter: url(#minimapDropShadow);
        cursor: move;
      }

      svg {
        position: absolute;
      }
    </style>
    <svg>
      <defs>
        <filter
          id="minimapDropShadow"
          x="-20%"
          y="-20%"
          width="150%"
          height="150%"
        >
          <feOffset result="offOut" in="SourceGraphic" dx="1" dy="1"></feOffset>
          <feColorMatrix
            result="matrixOut"
            in="offOut"
            type="matrix"
            values="0.1 0 0 0 0 0 0.1 0 0 0 0 0 0.1 0 0 0 0 0 0.5 0"
          ></feColorMatrix>
          <feGaussianBlur
            result="blurOut"
            in="matrixOut"
            stdDeviation="2"
          ></feGaussianBlur>
          <feBlend in="SourceGraphic" in2="blurOut" mode="normal"></feBlend>
        </filter>
      </defs>
      <rect></rect>
    </svg>
    <canvas class="first"></canvas>
    <!-- Additional canvas to use as buffer to avoid flickering between updates -->
    <canvas class="second"></canvas>
    <canvas class="download"></canvas>
  `,Pm=a([c("tf-graph-minimap")],Pm);const Hm=Ot`
  <style>
    :host(.dark-mode) {
      filter: invert(1);
    }

    :host {
      display: flex;
      font-size: 20px;
      height: 100%;
      width: 100%;
    }

    #svg {
      flex: 1;
      font-family: Roboto, sans-serif;
      height: 100%;
      overflow: hidden;hsl(0, 0%, 70%)
      width: 100%;
      outline: none;
    }

    #hidden {
      position: fixed;
      top: 0px;
      visibility: hidden;
    }

    text {
      user-select: none;
    }

    /* --- Node and annotation-node for Metanode --- */

    .meta > .nodeshape > rect,
    .meta > .annotation-node > rect {
      cursor: pointer;
      fill: hsl(0, 0%, 70%);
    }
    .node.meta.highlighted > .nodeshape > rect,
    .node.meta.highlighted > .annotation-node > rect {
      stroke-width: 2;
    }
    .annotation.meta.highlighted > .nodeshape > rect,
    .annotation.meta.highlighted > .annotation-node > rect {
      stroke-width: 1;
    }
    .meta.selected > .nodeshape > rect,
    .meta.selected > .annotation-node > rect {
      stroke: #4058D1;
      stroke-width: 2;
    }
    .node.meta.selected.expanded > .nodeshape > rect,
    .node.meta.selected.expanded > .annotation-node > rect {
      stroke: #4058D1;
      stroke-width: 3;
    }
    .annotation.meta.selected > .nodeshape > rect,
    .annotation.meta.selected > .annotation-node > rect {
      stroke: #4058D1;
      stroke-width: 2;
    }
    .node.meta.selected.expanded.highlighted > .nodeshape > rect,
    .node.meta.selected.expanded.highlighted > .annotation-node > rect {
      stroke: #4058D1;
      stroke-width: 4;
    }
    .meta.linked > .nodeshape > rect,
    .meta.linked > .annotation-node > rect {
      stroke: #7D8DDE !important;
      stroke-width: 2;
    }
    .node.meta.linked.expanded > .nodeshape > rect,
    .node.meta.linked.expanded > .annotation-node > rect {
      stroke: #7D8DDE !important;
      stroke-width: 3;
    }
    .annotation.meta.linked > .nodeshape > rect,
    .annotation.meta.linked > .annotation-node > rect {
      stroke: #7D8DDE !important;
      stroke-width: 2;
    }
    .node.meta.linked.expanded.highlighted > .nodeshape > rect,
    .node.meta.linked.expanded.highlighted > .annotation-node > rect {
      stroke: #7D8DDE !important;
      stroke-width: 4;
    }
    .api_list > .nodeshape > rect,
    .api_list > .annotation-node > rect {
      cursor: pointer;
      fill: hsl(0, 0%, 70%);
      stroke-width: 1;
      stroke-dasharray: 15, 2
    }
    .node.api_list.highlighted > .nodeshape > rect,
    .node.api_list.highlighted > .annotation-node > rect {
      stroke-width: 2;
    }
    .annotation.api_list.highlighted > .nodeshape > rect,
    .annotation.api_list.highlighted > .annotation-node > rect {
      stroke-width: 1;
    }
    .api_list.selected > .nodeshape > rect,
    .api_list.selected > .annotation-node > rect {
      stroke: #4058D1;
      stroke-width: 2;
    }
    .node.api_list.selected.expanded > .nodeshape > rect,
    .node.api_list.selected.expanded > .annotation-node > rect {
      stroke: #4058D1;
      stroke-width: 3;
    }
    .annotation.api_list.selected > .nodeshape > rect,
    .annotation.api_list.selected > .annotation-node > rect {
      stroke: #4058D1;
      stroke-width: 2;
    }
    .node.api_list.selected.expanded.highlighted > .nodeshape > rect,
    .node.api_list.selected.expanded.highlighted > .annotation-node > rect {
      stroke: #4058D1;
      stroke-width: 4;
    }
    .api_list.linked > .nodeshape > rect,
    .api_list.linked > .annotation-node > rect {
      stroke: #7D8DDE !important;
      stroke-width: 2;
    }
    .node.api_list.linked.expanded > .nodeshape > rect,
    .node.api_list.linked.expanded > .annotation-node > rect {
      stroke: #7D8DDE !important;
      stroke-width: 3;
    }
    .annotation.api_list.linked > .nodeshape > rect,
    .annotation.api_list.linked > .annotation-node > rect {
      stroke: #7D8DDE !important;
      stroke-width: 2;
    }
    .node.api_list.linked.expanded.highlighted > .nodeshape > rect,
    .node.api_list.linked.expanded.highlighted > .annotation-node > rect {
      stroke: #7D8DDE !important;
      stroke-width: 4;
    }

    .faded,
    .faded rect,
    .faded ellipse,
    .faded path,
    .faded use,
    #rectHatch line,
    #ellipseHatch line {
      color: #e0d4b3 !important;
      fill: white;
      stroke: #e0d4b3 !important;
    }

    .faded path {
      stroke-width: 1px !important;
    }

    .faded rect {
      fill: url(#rectHatch) !important;
    }

    .faded ellipse,
    .faded use {
      fill: url(#ellipseHatch) !important;
    }

    .faded text {
      opacity: 0;
    }

    /* Rules used for input-tracing. */
    .input-highlight > * > rect,
    .input-highlight > * > ellipse,
    .input-highlight > * > use {
      fill: white;
      stroke: #ff9800 !important;
    }

    /*  - Faded non-input styling */
    .non-input > * > rect,
.non-input > * > ellipse,
.non-input > * > use,
/* For Const nodes. */
.non-input > * > .constant:not([class*="input-highlight"]) >
  .annotation-node > ellipse,
/* For styling of annotation nodes of non-input nodes. */
.non-input > g > .annotation > .annotation-node > rect {
      stroke: #e0d4b3 !important;
      stroke-width: inherit;
      stroke-dasharray: inherit;
    }

    .non-input path {
      visibility: hidden;
    }

    .non-input > .nodeshape > rect,
.non-input > .annotation-node > rect,
/* For styling of annotation nodes of non-input nodes. */
.non-input > g > .annotation > .annotation-node > rect {
      fill: url(#rectHatch) !important;
    }

    .non-input ellipse,
    .non-input use {
      fill: url(#ellipseHatch) !important;
    }

    .non-input > text {
      opacity: 0;
    }

    .non-input .annotation > .annotation-edge {
      marker-end: url(#annotation-arrowhead-faded);
    }

    .non-input .annotation > .annotation-edge.refline {
      marker-start: url(#ref-annotation-arrowhead-faded);
    }

    /* Input edges. */
    .input-edge-highlight > text {
      fill: black !important;
    }
    .input-highlight > .in-annotations > .annotation > .annotation-edge,
    .input-highlight-selected
      > .in-annotations
      > .annotation
      > .annotation-edge {
      stroke: #999 !important;
    }

    /* Non-input edges. */
    .non-input-edge-highlight,
.non-input > g > .annotation > path,
/* Annotation styles (label and edges respectively). */
.non-input > g >
.annotation:not(.input-highlight):not(.input-highlight-selected) >
.annotation-label
/*.annotation-edge*/ {
      visibility: hidden;
    }

    /* --- Op Node --- */

    .op > .nodeshape > .nodecolortarget,
    .op > .annotation-node > .nodecolortarget {
      cursor: pointer;
      fill: #fff;
      stroke: #ccc;
    }

    .op.selected > .nodeshape > .nodecolortarget,
    .op.selected > .annotation-node > .nodecolortarget {
      stroke: #4058D1;
      stroke-width: 2;
    }

    .op.highlighted > .nodeshape > .nodecolortarget,
    .op.highlighted > .annotation-node > .nodecolortarget {
      stroke-width: 2;
    }

    .op.linked > .nodeshape > .nodecolortarget,
    .op.linked > .annotation-node > .nodecolortarget {
      stroke: #7D8DDE !important;
      stroke-width: 2;
    }

    /* --- Series Node --- */

    /* By default, don't show the series background <rect>. */
    .series > .nodeshape > rect {
      fill: hsl(0, 0%, 70%);
      fill-opacity: 0;
      stroke-dasharray: 5, 5;
      stroke-opacity: 0;
      cursor: pointer;
    }

    /* Once expanded, show the series background <rect> and hide the <use>. */
    .series.expanded > .nodeshape > rect {
      fill-opacity: 0.15;
      stroke: hsl(0, 0%, 70%);
      stroke-opacity: 1;
    }
    .series.expanded > .nodeshape > use {
      visibility: hidden;
    }

    /**
 * TODO: Simplify this by applying a stable class name to all <g>
 * elements that currently have either the nodeshape or annotation-node classes.
 */
    .series > .nodeshape > use,
    .series > .annotation-node > use {
      stroke: #ccc;
    }
    .series.highlighted > .nodeshape > use,
    .series.highlighted > .annotation-node > use {
      stroke-width: 2;
    }
    .series.selected > .nodeshape > use,
    .series.selected > .annotation-node > use {
      stroke: red;
      stroke-width: 2;
    }

    .series.selected > .nodeshape > rect {
      stroke: red;
      stroke-width: 2;
    }

    .annotation.series.selected > .annotation-node > use {
      stroke: red;
      stroke-width: 2;
    }

    /* --- Bridge Node --- */
    .bridge > .nodeshape > rect {
      stroke: #f0f;
      opacity: 0.2;
      display: none;
    }

    /* --- Structural Elements --- */
    .edge > path.edgeline.structural {
      stroke: #f0f;
      opacity: 0.2;
      display: none;
    }

    /* Reference Edge */
    .edge > path.edgeline.referenceedge {
      stroke: #ffb74d;
      opacity: 1;
    }

    /* --- Series Nodes --- */

    /* Hide the rect for a series' annotation. */
    .series > .annotation-node > rect {
      display: none;
    }

    /* --- Node label --- */

    .node {
      /* Provide a hint to browsers to avoid using their static rasterization
      at initial scale, which looks very pixelated on Chromium when zoomed in.
      Note that we intentionally do *not* use 'will-change: transform' and
      'translateZ(0) here, which introduce blurriness on Firefox.
      See https://github.com/tensorflow/tensorboard/issues/4744 */
      transform: translateZ(1px);
    }

    .node > text.nodelabel {
      cursor: pointer;
      fill: #444;
      font-size: 9px;
    }

    .meta.expanded > text.nodelabel {
      font-size: 9px;
    }

    .series > text.nodelabel {
      font-size: 8px;
    }

    .op > text.nodelabel {
      font-size: 6px;
    }

    .bridge > text.nodelabel {
      display: none;
    }

    .node.meta.expanded > text.nodelabel {
      cursor: normal;
    }

    .node.api_list.expanded > text.nodelabel {
      cursor: normal;
    }

    .annotation.meta.highlighted > text.annotation-label {
      fill: #50a3f7;
    }

    .annotation.meta.selected > text.annotation-label {
      fill: #4285f4;
    }

    /* --- Annotation --- */

    /* only applied for annotations that are not summary or constant.
(.summary, .constant gets overridden below) */
    .annotation > .annotation-node > * {
      stroke-width: 0.5;
      stroke-dasharray: 1, 1;
    }

    .annotation.summary > .annotation-node > *,
    .annotation.constant > .annotation-node > * {
      stroke-width: 1;
      stroke-dasharray: none;
    }

    .annotation > .annotation-edge {
      fill: none;
      stroke: #aaa;
      stroke-width: 0.5;
      marker-end: url(#annotation-arrowhead);
    }

    .faded .annotation > .annotation-edge {
      marker-end: url(#annotation-arrowhead-faded);
    }

    .annotation > .annotation-edge.refline {
      marker-start: url(#ref-annotation-arrowhead);
    }

    .faded .annotation > .annotation-edge.refline {
      marker-start: url(#ref-annotation-arrowhead-faded);
    }

    .annotation > .annotation-control-edge {
      stroke-dasharray: 1, 1;
    }

    #annotation-arrowhead {
      fill: #aaa;
    }

    #annotation-arrowhead-faded {
      fill: #e0d4b3;
    }

    #ref-annotation-arrowhead {
      fill: #aaa;
    }

    #ref-annotation-arrowhead-faded {
      fill: #e0d4b3;
    }

    .annotation > .annotation-label {
      font-size: 5px;
      cursor: pointer;
    }
    .annotation > .annotation-label.annotation-ellipsis {
      cursor: default;
    }

    /* Hide annotations on expanded meta nodes since they're redundant. */
    .expanded > .in-annotations,
    .expanded > .out-annotations {
      display: none;
    }

    /* --- Annotation: Constant --- */

    .constant > .annotation-node > ellipse {
      cursor: pointer;
      fill: white;
      stroke: #848484;
    }

    .constant.selected > .annotation-node > ellipse {
      fill: white;
      stroke: red;
    }

    .constant.highlighted > .annotation-node > ellipse {
      stroke-width: 1.5;
    }

    /* --- Annotation: Summary --- */

    .summary > .annotation-node > ellipse {
      cursor: pointer;
      fill: #db4437;
      stroke: #db4437;
    }

    .summary.selected > .annotation-node > ellipse {
      fill: #a52714;
      stroke: #a52714;
    }

    .summary.highlighted > .annotation-node > ellipse {
      stroke-width: 1.5;
    }

    /* --- Edge --- */

    .edge > path.edgeline {
      display: none;
      fill: none;
      stroke: #bbb;
      stroke-linecap: round;
      stroke-width: 0.75;
    }

    .highlighted > path.edgeline {
      cursor: pointer;
      stroke: #5ae;
    }

    .edge .selectableedge {
      cursor: pointer;
    }

    .selectededge > path.edgeline {
      cursor: default;
      stroke: #f00;
    }

    .edge.selectededge text {
      fill: #000;
    }

    /* Labels showing tensor shapes on edges */
    .edge > text {
      font-size: 3.5px;
      fill: #666;
    }

    .dataflow-arrowhead {
      fill: #bbb;
    }

    .reference-arrowhead {
      fill: #ffb74d;
    }

    .selected-arrowhead {
      fill: #f00;
    }

    .highlighted-arrowhead {
      fill: #5ae;
    }

    .edge .control-dep {
      stroke-dasharray: 2, 2;
    }

    /* --- Group node expand/collapse button --- */

    /* Hides expand/collapse buttons when a node isn't expanded or highlighted. Using
   incredibly small opacity so that the bounding box of the <g> parent still takes
   this container into account even when it isn't visible */
    .node:not(.highlighted):not(.expanded) > .nodeshape > .buttoncontainer {
      opacity: 0.01;
    }
    .node.highlighted > .nodeshape > .buttoncontainer {
      cursor: pointer;
    }
    .buttoncircle {
      fill: #e7811d;
    }
    .buttoncircle:hover {
      fill: #b96717;
    }
    .expandbutton,
    .collapsebutton {
      stroke: white;
    }
    /* Do not let the path elements in the button take pointer focus */
    .node > .nodeshape > .buttoncontainer > .expandbutton,
    .node > .nodeshape > .buttoncontainer > .collapsebutton {
      pointer-events: none;
    }
    /* Only show the expand button when a node is collapsed and only show the
   collapse button when a node is expanded. */
    .node.expanded > .nodeshape > .buttoncontainer > .expandbutton {
      display: none;
    }
    .node:not(.expanded) > .nodeshape > .buttoncontainer > .collapsebutton {
      display: none;
    }

    .health-pill-stats {
      font-size: 4px;
      text-anchor: middle;
    }

    .health-pill rect {
      filter: url(#health-pill-shadow);
      rx: 3;
      ry: 3;
    }

    .titleContainer {
      position: relative;
      top: 20px;
    }

    .title,
    .auxTitle,
    .functionLibraryTitle {
      position: absolute;
    }

    #minimap {
      position: absolute;
      right: 20px;
      bottom: 20px;
    }

    .context-menu {
      position: absolute;
      display: none;
      background-color: #e2e2e2;
      border-radius: 2px;
      font-size: 14px;
      min-width: 150px;
      border: 1px solid #d4d4d4;
    }

    .context-menu ul {
      list-style-type: none;
      margin: 0;
      padding: 0;
      cursor: default;
    }

    .context-menu ul li {
      padding: 4px 16px;
    }

    .context-menu ul li:hover {
      background-color: #f3913e;
      color: white;
    }
  </style>
  <div class="titleContainer">
    <div id="title" class="title">Main Graph</div>
    <div id="auxTitle" class="auxTitle">Auxiliary Nodes</div>
    <div id="functionLibraryTitle" class="functionLibraryTitle">Functions</div>
  </div>
  <svg id="svg">
    <defs>
      <!-- Arrow heads for reference edge paths of different predefined sizes per color. -->
      <path
        id="reference-arrowhead-path"
        d="M 0,0 L 10,5 L 0,10 C 3,7 3,3 0,0"
      ></path>
      <marker
        class="reference-arrowhead"
        id="reference-arrowhead-small"
        viewBox="0 0 10 10"
        markerWidth="5"
        markerHeight="5"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#reference-arrowhead-path"></use>
      </marker>
      <marker
        class="reference-arrowhead"
        id="reference-arrowhead-medium"
        viewBox="0 0 10 10"
        markerWidth="13"
        markerHeight="13"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#reference-arrowhead-path"></use>
      </marker>
      <marker
        class="reference-arrowhead"
        id="reference-arrowhead-large"
        viewBox="0 0 10 10"
        markerWidth="16"
        markerHeight="16"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#reference-arrowhead-path"></use>
      </marker>
      <marker
        class="reference-arrowhead"
        id="reference-arrowhead-xlarge"
        viewBox="0 0 10 10"
        markerWidth="20"
        markerHeight="20"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#reference-arrowhead-path"></use>
      </marker>

      <!-- Arrow heads for dataflow edge paths of different predefined sizes per color. -->
      <path
        id="dataflow-arrowhead-path"
        d="M 0,0 L 10,5 L 0,10 C 3,7 3,3 0,0"
      ></path>
      <marker
        class="dataflow-arrowhead"
        id="dataflow-arrowhead-small"
        viewBox="0 0 10 10"
        markerWidth="5"
        markerHeight="5"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#dataflow-arrowhead-path"></use>
      </marker>
      <marker
        class="dataflow-arrowhead"
        id="dataflow-arrowhead-medium"
        viewBox="0 0 10 10"
        markerWidth="13"
        markerHeight="13"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#dataflow-arrowhead-path"></use>
      </marker>
      <marker
        class="dataflow-arrowhead"
        id="dataflow-arrowhead-large"
        viewBox="0 0 10 10"
        markerWidth="16"
        markerHeight="16"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#dataflow-arrowhead-path"></use>
      </marker>
      <marker
        class="dataflow-arrowhead"
        id="dataflow-arrowhead-xlarge"
        viewBox="0 0 10 10"
        markerWidth="20"
        markerHeight="20"
        refX="2"
        refY="5"
        orient="auto-start-reverse"
        markerUnits="userSpaceOnUse"
      >
        <use xlink:href="#dataflow-arrowhead-path"></use>
      </marker>

      <!-- Arrow head for annotation edge paths. -->
      <marker
        id="annotation-arrowhead"
        markerWidth="5"
        markerHeight="5"
        refX="5"
        refY="2.5"
        orient="auto"
      >
        <path d="M 0,0 L 5,2.5 L 0,5 L 0,0"></path>
      </marker>
      <marker
        id="annotation-arrowhead-faded"
        markerWidth="5"
        markerHeight="5"
        refX="5"
        refY="2.5"
        orient="auto"
      >
        <path d="M 0,0 L 5,2.5 L 0,5 L 0,0"></path>
      </marker>
      <marker
        id="ref-annotation-arrowhead"
        markerWidth="5"
        markerHeight="5"
        refX="0"
        refY="2.5"
        orient="auto"
      >
        <path d="M 5,0 L 0,2.5 L 5,5 L 5,0"></path>
      </marker>
      <marker
        id="ref-annotation-arrowhead-faded"
        markerWidth="5"
        markerHeight="5"
        refX="0"
        refY="2.5"
        orient="auto"
      >
        <path d="M 5,0 L 0,2.5 L 5,5 L 5,0"></path>
      </marker>
      <!-- Template for an Op node ellipse. -->
      <ellipse
        id="op-node-stamp"
        rx="7.5"
        ry="3"
        stroke="inherit"
        fill="inherit"
      ></ellipse>
      <!-- Template for an Op node annotation ellipse (smaller). -->
      <ellipse
        id="op-node-annotation-stamp"
        rx="5"
        ry="2"
        stroke="inherit"
        fill="inherit"
      ></ellipse>
      <!-- Vertically stacked series of Op nodes when unexpanded. -->
      <g id="op-series-vertical-stamp">
        <use xlink:href="#op-node-stamp" x="8" y="9"></use>
        <use xlink:href="#op-node-stamp" x="8" y="6"></use>
        <use xlink:href="#op-node-stamp" x="8" y="3"></use>
      </g>
      <!-- Horizontally stacked series of Op nodes when unexpanded. -->
      <g id="op-series-horizontal-stamp">
        <use xlink:href="#op-node-stamp" x="16" y="4"></use>
        <use xlink:href="#op-node-stamp" x="12" y="4"></use>
        <use xlink:href="#op-node-stamp" x="8" y="4"></use>
      </g>
      <!-- Horizontally stacked series of Op nodes for annotation. -->
      <g id="op-series-annotation-stamp">
        <use xlink:href="#op-node-annotation-stamp" x="9" y="2"></use>
        <use xlink:href="#op-node-annotation-stamp" x="7" y="2"></use>
        <use xlink:href="#op-node-annotation-stamp" x="5" y="2"></use>
      </g>
      <svg
        id="summary-icon"
        fill="#848484"
        height="12"
        viewBox="0 0 24 24"
        width="12"
      >
        <path
          d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"
        ></path>
      </svg>

      <!-- Hatch patterns for faded out nodes. -->
      <pattern
        id="rectHatch"
        patternTransform="rotate(45 0 0)"
        width="5"
        height="5"
        patternUnits="userSpaceOnUse"
      >
        <line x1="0" y1="0" x2="0" y2="5" style="stroke-width: 1"></line>
      </pattern>
      <pattern
        id="ellipseHatch"
        patternTransform="rotate(45 0 0)"
        width="2"
        height="2"
        patternUnits="userSpaceOnUse"
      >
        <line x1="0" y1="0" x2="0" y2="2" style="stroke-width: 1"></line>
      </pattern>

      <!-- A shadow for health pills. -->
      <filter
        id="health-pill-shadow"
        x="-40%"
        y="-40%"
        width="180%"
        height="180%"
      >
        <feGaussianBlur in="SourceAlpha" stdDeviation="0.8"></feGaussianBlur>
        <feOffset dx="0" dy="0" result="offsetblur"></feOffset>
        <feFlood flood-color="#000000"></feFlood>
        <feComposite in2="offsetblur" operator="in"></feComposite>
        <feMerge>
          <feMergeNode></feMergeNode>
          <feMergeNode in="SourceGraphic"></feMergeNode>
        </feMerge>
      </filter>
    </defs>
    <!-- Make a large rectangle that fills the svg space so that
  zoom events get captured on safari -->
    <rect fill="white" width="10000" height="10000"></rect>
    <g id="root"></g>
  </svg>
  <tf-graph-minimap id="minimap"></tf-graph-minimap>
  <div id="contextMenu" class="context-menu"></div>
`;var Rm;let Vm=class extends(pr(us(Pt))){constructor(){super(...arguments),this._step=20,this._scaleStep=1,this.mouseX=0,this.mouseY=0,this.x=0,this.y=0,this._zoomed=!1,this._zoomStartCoords=null,this._zoomTransform=null,this._maxZoomDistanceForClick=20,this._nodeGroupIndex={},this._annotationGroupIndex={},this._edgeGroupIndex={},this.maxMetanodeLabelLengthFontSize=9,this.minMetanodeLabelLengthFontSize=6,this.maxMetanodeLabelLengthLargeFont=11,this.maxMetanodeLabelLength=50}getNode(e){return this.renderHierarchy.getRenderNodeByName(e)}isNodeExpanded(e){return e.expanded}setNodeExpanded(e){this._build(this.renderHierarchy),this._updateLabels(!this._zoomed)}panToNode(e){const t=function(e,t,n,i){const r=Nh(t).select(`[data-name="${e}"]`).node();if(!r)return console.warn(`panToNode() failed for node name "${e}"`),!1;let o=r.getBBox(),a=r.getScreenCTM(),s=t.createSVGPoint(),l=t.createSVGPoint();s.x=o.x,s.y=o.y,l.x=o.x+o.width,l.y=o.y+o.height,s=s.matrixTransform(a),l=l.matrixTransform(a);let c=(e,t,n,i)=>!(e>n&&t<i),d=t.getBoundingClientRect();const h=d.left+d.width-320,p=d.top+d.height-150;if(c(s.x,l.x,d.left,h)||c(s.y,l.y,d.top,p)){let e=(s.x+l.x)/2,n=(s.y+l.y)/2,r=d.left+d.width/2-e,o=d.top+d.height/2-n;const a=Ru(t);return Nh(t).transition().duration(500).call(i.translateBy,r/a.k,o/a.k),!0}return!1}(e,this.$.svg,this.$.root,this._zoom);t&&(this._zoomed=!0)}getGraphSvgRoot(){return this.$.svg}getContextMenu(){return this.$.contextMenu}_resetState(){this._nodeGroupIndex={},this._annotationGroupIndex={},this._edgeGroupIndex={},this._updateLabels(!1),Nh(this.$.svg).select("#root").selectAll("*").remove(),xm(this.$.svg)}_build(e){e&&(this.templateIndex=e.hierarchy.getTemplateIndex(),lf("tf-graph-scene (layout):",function(){jg(e.root)}.bind(this),Xu.RENDER_SCENE_LAYOUT),lf("tf-graph-scene (build scene):",function(){var t,n;Im(Nh(this.$.root),e.root,this),t=this.$.svg,n=this,Nh(t).on("click",(()=>{n.fire("graph-select")})),this._updateInputTrace()}.bind(this),Xu.RENDER_SCENE_BUILD_SCENE),setTimeout(function(){this.minimap.update()}.bind(this),Dg.animation.duration))}ready(){super.ready(),this._zoom=qu().on("end",function(){this._zoomStartCoords&&(Math.sqrt(Math.pow(this._zoomStartCoords.x-this._zoomTransform.x,2)+Math.pow(this._zoomStartCoords.y-this._zoomTransform.y,2))<this._maxZoomDistanceForClick?this._fireEnableClick():setTimeout(this._fireEnableClick.bind(this),50)),this._zoomStartCoords=null}.bind(this)).on("zoom",function(){this._zoomTransform=hc.transform,this._zoomStartCoords||(this._zoomStartCoords=this._zoomTransform,this.fire("disable-click")),this._zoomed=!0,Nh(this.$.root).attr("transform",hc.transform.toString()),this.x=hc.transform.x,this.y=hc.transform.y,this.k=hc.transform.k,this.minimap.zoom(hc.transform)}.bind(this)),Nh(this.$.svg).call(this._addEventListener.bind(this)).on("dblclick.zoom",null),Nh(window).on("resize",function(){this.minimap.zoom()}.bind(this)),this.minimap=this.$.minimap.init(this.$.svg,this.$.root,this._zoom,Dg.minimap.size,Dg.subscene.meta.labelHeight),this._addEventListener()}_addEventListener(){let e,t,n=!1,i=0;const r=this.$.svg;r.setAttribute("tabindex","0"),r.addEventListener("mousemove",(e=>{this.mouseX=e.clientX,this.mouseY=e.clientY})),r.addEventListener("mousedown",(i=>{n=!0,e=i.clientX,t=i.clientY,r.focus()})),r.addEventListener("mousemove",(i=>{n&&(this.x+=(i.clientX-e)/2,this.y+=(i.clientY-t)/2,this._moveView(),e=i.clientX,t=i.clientY)})),window.addEventListener("mouseup",(()=>{n=!1})),r.addEventListener("wheel",(e=>{const t=performance.now();if(t-i>16){const n=Math.sign(e.deltaY)*Math.min(Math.abs(e.deltaY),800);this.y-=.2*n*2,this._moveView(),i=t}})),r.addEventListener("keydown",(e=>{switch(e.key){case"w":case"W":this._scaleStep=1.1,this._scaleView(this._scaleStep);break;case"s":case"S":this._scaleStep=.9,this._scaleView(this._scaleStep);break;case"a":case"A":this.x+=this._step,this._moveView();break;case"d":case"D":this.x-=this._step,this._moveView();break;default:return}}))}_scaleView(e){if(this._zoomTransform){const t=this.$.svg,n=Ru(t),[i,r]=[this.mouseX-t.getBoundingClientRect().left,this.mouseY-t.getBoundingClientRect().top],o=(i-n.x)/n.k,a=(r-n.y)/n.k,s=n.k*e;this.x=i-o*s,this.y=r-a*s;const l=Hu.translate(this.x,this.y).scale(s);Nh(this.$.svg).call(qu().transform,l),Nh(this.$.root).attr("transform",l.toString()),this._zoomTransform=l,this.minimap.zoom(l)}}_moveView(){if(this._zoomTransform){const e=Ru(this.$.svg),t=Hu.translate(this.x,this.y).scale(e.k);Nh(this.$.svg).call(qu().transform,t),Nh(this.$.root).attr("transform",t.toString()),this._zoomTransform=t,this.minimap.zoom(t)}}attached(){this.set("_isAttached",!0)}detached(){this.set("_isAttached",!1)}_renderHierarchyChanged(){var e=this.renderHierarchy;this._hasRenderHierarchyBeenFitOnce=!1,this._resetState(),this._build(e)}_animateAndFit(){var e=this._isAttached;!this._hasRenderHierarchyBeenFitOnce&&e&&setTimeout(this.fit.bind(this),Dg.animation.duration)}_updateLabels(e){var t=this.$$(".title"),n=t.style,i=this.$$(".auxTitle"),r=i.style,o=this.$$(".functionLibraryTitle").style;const a=Nh(this.$.svg);var s=a.select("."+Wg.Scene.GROUP+">."+Wg.Scene.CORE).node();if(e&&s&&this.progress&&100===this.progress.value){var l=a.select("."+Wg.Scene.GROUP+">."+Wg.Scene.INEXTRACT).node()||a.select("."+Wg.Scene.GROUP+">."+Wg.Scene.OUTEXTRACT).node(),c=s.getCTM().e,d=l?l.getCTM().e:null;n.display="inline",n.left=c+"px",null!==d&&d!==c?(r.display="inline",d=Math.max(c+t.getBoundingClientRect().width,d),r.left=d+"px"):r.display="none";let e=a.select("."+Wg.Scene.GROUP+">."+Wg.Scene.FUNCTION_LIBRARY).node(),h=e?e.getCTM().e:null;null!==h&&h!==d?(o.display="inline",h=Math.max(d+i.getBoundingClientRect().width,h),o.left=h+"px"):o.display="none"}else n.display="none",r.display="none",o.display="none"}fit(){this._hasRenderHierarchyBeenFitOnce=!0,this._scaleStep=1,function(e,t,n,i){let r=e.getBoundingClientRect(),o=null;try{if(o=t.getBBox(),0===(null==o?void 0:o.width))return}catch(e){return}let a=.9*Math.min(r.width/(null==o?void 0:o.width),r.height/(null==o?void 0:o.height),2),s=Dg.graph;const l=Hu.scale(a).translate(s.padding.paddingLeft,s.padding.paddingTop);Nh(e).transition().duration(500).call(n.transform,l).on("end.fitted",(()=>{n.on("end.fitted",null),i()}))}(this.$.svg,this.$.root,this._zoom,function(){this._zoomed=!1}.bind(this))}getImageBlob(){return this.minimap.getImageBlob()}isNodeSelected(e){return e===this.selectedNode}isNodeHighlighted(e){return e===this.highlightedNode}isNodeLinked(e){return e===this.linkedNode}addAnnotationGroup(e,t,n){var i=e.node.name;this._annotationGroupIndex[i]=this._annotationGroupIndex[i]||{},this._annotationGroupIndex[i][t.node.name]=n}getAnnotationGroupsIndex(e){return this._annotationGroupIndex[e]}removeAnnotationGroup(e,t){delete this._annotationGroupIndex[e.node.name][t.node.name]}addNodeGroup(e,t){this._nodeGroupIndex[e]=t}getNodeGroup(e){return this._nodeGroupIndex[e]}removeNodeGroup(e){delete this._nodeGroupIndex[e]}addEdgeGroup(e,t){this._edgeGroupIndex[e]=t}getEdgeGroup(e){return this._edgeGroupIndex[e]}_updateNodeState(e){var t=this.getNode(e);if(t){var n=this.getNodeGroup(e);if(n&&Em(n,t,this),t.node.type===(Tf.META||Tf.API_LIST)&&t.node.associatedFunction&&!t.isLibraryFunction){var i=wf+t.node.associatedFunction;Em(Nh("."+Wg.Scene.GROUP+">."+Wg.Scene.FUNCTION_LIBRARY+' g[data-name="'+i+'"]'),t,this)}var r=this.getAnnotationGroupsIndex(e);Ss.each(r,((e,n)=>{Em(e,t,this,Wg.Annotation.NODE)}))}}_selectedNodeChanged(e,t){if(e===t)return;if(t&&this._updateNodeState(t),!e)return void(this.linkedNode="");var n=this.renderHierarchy.hierarchy.node(e);if(!n)return;const i=n.nodeAttributes._linked_node;if(Array.isArray(i)){let e,t="",n=!1;for(let r of i){const i=this.renderHierarchy.getRenderNodeByName(r);if(!i)break;e=i,n=i.expanded,i.expanded=!0,t=r}e&&(e.expanded=n),this.linkedNode=t}else this.linkedNode="";this.minimap.update();for(var r,o=[];null!=n.parentNode&&n.parentNode.name!=xf;)n=n.parentNode,o.push(n.name);Ss.forEachRight(o,(e=>{this.renderHierarchy.buildSubhierarchy(e);var t=this.renderHierarchy.getRenderNodeByName(e);t.node.isGroupNode&&!t.expanded&&(t.expanded=!0,r||(r=t))})),r&&(this.setNodeExpanded(r),this._zoomed=!0),e&&this._updateNodeState(e),setTimeout((()=>{this.panToNode(e)}),Dg.animation.duration)}_highlightedNodeChanged(e,t){e!==t&&(e&&this._updateNodeState(e),t&&this._updateNodeState(t))}_linkedNodeChanged(e,t){e!==t&&(t&&this._updateNodeState(t),e&&this._updateNodeState(e),this._build(this.renderHierarchy))}_onZoomChanged(){this._updateLabels(!this._zoomed)}_fireEnableClick(){this.fire("enable-click")}_updateInputTrace(){zm(this.getGraphSvgRoot(),this.renderHierarchy,this.selectedNode,this.traceInputs)}};var Bm;Vm.template=Hm,a([h({type:Number}),s("design:type",Number)],Vm.prototype,"_step",void 0),a([h({type:Number}),s("design:type",Number)],Vm.prototype,"_scaleStep",void 0),a([h({type:Number}),s("design:type",Number)],Vm.prototype,"mouseX",void 0),a([h({type:Number}),s("design:type",Number)],Vm.prototype,"mouseY",void 0),a([h({type:Number}),s("design:type",Number)],Vm.prototype,"x",void 0),a([h({type:Number}),s("design:type",Number)],Vm.prototype,"y",void 0),a([h({type:Object}),s("design:type","function"==typeof(Rm=zg)?Rm:Object)],Vm.prototype,"renderHierarchy",void 0),a([h({type:String}),s("design:type",String)],Vm.prototype,"name",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Vm.prototype,"traceInputs",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Vm.prototype,"_hasRenderHierarchyBeenFitOnce",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Vm.prototype,"_isAttached",void 0),a([h({type:Object}),s("design:type",Object)],Vm.prototype,"_zoom",void 0),a([h({type:Object}),s("design:type",Object)],Vm.prototype,"_drag",void 0),a([h({type:String,observer:"_highlightedNodeChanged"}),s("design:type",String)],Vm.prototype,"highlightedNode",void 0),a([h({type:String,observer:"_selectedNodeChanged"}),s("design:type",String)],Vm.prototype,"selectedNode",void 0),a([h({type:String,observer:"_linkedNodeChanged"}),s("design:type",String)],Vm.prototype,"linkedNode",void 0),a([h({type:Object}),s("design:type",Object)],Vm.prototype,"handleEdgeSelected",void 0),a([h({type:Boolean,observer:"_onZoomChanged"}),s("design:type",Boolean)],Vm.prototype,"_zoomed",void 0),a([h({type:Object}),s("design:type",Object)],Vm.prototype,"_zoomStartCoords",void 0),a([h({type:Object}),s("design:type",Object)],Vm.prototype,"_zoomTransform",void 0),a([h({type:Number}),s("design:type",Number)],Vm.prototype,"_maxZoomDistanceForClick",void 0),a([h({type:Object}),s("design:type",Function)],Vm.prototype,"templateIndex",void 0),a([h({type:Object}),s("design:type",Object)],Vm.prototype,"_nodeGroupIndex",void 0),a([h({type:Object}),s("design:type",Object)],Vm.prototype,"_annotationGroupIndex",void 0),a([h({type:Object}),s("design:type",Object)],Vm.prototype,"_edgeGroupIndex",void 0),a([h({type:Number}),s("design:type",Number)],Vm.prototype,"maxMetanodeLabelLengthFontSize",void 0),a([h({type:Number}),s("design:type",Number)],Vm.prototype,"minMetanodeLabelLengthFontSize",void 0),a([h({type:Number}),s("design:type",Number)],Vm.prototype,"maxMetanodeLabelLengthLargeFont",void 0),a([h({type:Number}),s("design:type",Number)],Vm.prototype,"maxMetanodeLabelLength",void 0),a([h({type:Object}),s("design:type",Object)],Vm.prototype,"progress",void 0),a([h({type:Array}),s("design:type",Array)],Vm.prototype,"nodeContextMenuItems",void 0),a([p("renderHierarchy"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Vm.prototype,"_renderHierarchyChanged",null),a([p("_isAttached","renderHierarchy"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Vm.prototype,"_animateAndFit",null),a([p("traceInputs","selectedNode"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Vm.prototype,"_updateInputTrace",null),Vm=a([c("tf-graph-scene")],Vm),function(e){e.CONST="CONST",e.META="META",e.OP="OP",e.SERIES="SERIES",e.SUMMARY="SUMMARY",e.API_LIST="API_LIST"}(Bm||(Bm={}));let Dm=class extends(pr(us(Pt))){constructor(){super(...arguments),this.vertical=!1,this.fillOverride=null,this.strokeOverride=null,this.height=20,this.faded=!1}getSvgDefinableElement(){return this.$.svgDefs}get _fill(){var e=this.type,t=this.fillOverride;if(null!=t)return t;switch(e){case Bm.META:return wg.DEFAULT_FILL;case Bm.SERIES:return Sg.DEFAULT_FILL;default:return xg.DEFAULT_FILL}}get _stroke(){var e=this.type,t=this.strokeOverride;if(null!=t)return t;switch(e){case Bm.META:return wg.DEFAULT_STROKE;case Bm.SERIES:return Sg.DEFAULT_STROKE;default:return xg.DEFAULT_STROKE}}_isType(e,t){return e===t}_fadedClass(e,t){return e?"faded-"+t:""}};Dm.template=Ot`
    <style>
      :host {
        font-size: 0;
      }

      :host(.dark-mode) svg {
        filter: invert(1);
      }

      .faded-rect {
        fill: url(#rectHatch);
      }

      .faded-ellipse {
        fill: url(#ellipseHatch);
      }

      .faded-rect,
      .faded-ellipse,
      .faded-series {
        stroke: var(--tb-graph-faded) !important;
      }
      #rectHatch line,
      #ellipseHatch line {
        color: #e0d4b3 !important;
        fill: white;
        stroke: #e0d4b3 !important;
      }
    </style>
    <!-- SVG for definitions -->
    <svg height="0" width="0" id="svgDefs">
      <defs>
        <!-- Hatch patterns for faded out nodes. -->
        <pattern
          id="rectHatch"
          patternTransform="rotate(45 0 0)"
          width="5"
          height="5"
          patternUnits="userSpaceOnUse"
        >
          <line x1="0" y1="0" x2="0" y2="5" style="stroke-width: 1"></line>
        </pattern>
        <pattern
          id="ellipseHatch"
          patternTransform="rotate(45 0 0)"
          width="2"
          height="2"
          patternUnits="userSpaceOnUse"
        >
          <line x1="0" y1="0" x2="0" y2="2" style="stroke-width: 1"></line>
        </pattern>
        <!-- Template for an Op node ellipse. -->
        <ellipse
          id="op-node-stamp"
          rx="7.5"
          ry="3"
          stroke="inherit"
          fill="inherit"
        ></ellipse>
        <!-- Template for an Op node annotation ellipse (smaller). -->
        <ellipse
          id="op-node-annotation-stamp"
          rx="5"
          ry="2"
          stroke="inherit"
          fill="inherit"
        ></ellipse>
        <!-- Vertically stacked series of Op nodes when unexpanded. -->
        <g id="op-series-vertical-stamp">
          <use xlink:href="#op-node-stamp" x="8" y="9"></use>
          <use xlink:href="#op-node-stamp" x="8" y="6"></use>
          <use xlink:href="#op-node-stamp" x="8" y="3"></use>
        </g>
        <g id="op-series-horizontal-stamp">
          <use xlink:href="#op-node-stamp" x="16" y="4"></use>
          <use xlink:href="#op-node-stamp" x="12" y="4"></use>
          <use xlink:href="#op-node-stamp" x="8" y="4"></use>
        </g>
        <g
          id="summary-icon"
          fill="#848484"
          height="12"
          viewBox="0 0 24 24"
          width="12"
        >
          <path
            d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"
          ></path>
        </g>
      </defs>
    </svg>
    <template is="dom-if" if="[[_isType(type, 'CONST')]]">
      <svg
        height$="[[height]]"
        preserveAspectRatio="xMinYMid meet"
        viewBox="0 0 10 10"
      >
        <circle
          cx="5"
          cy="5"
          r="3"
          fill$="[[_fill]]"
          stroke$="[[_stroke]]"
        ></circle>
      </svg>
    </template>
    <template is="dom-if" if="[[_isType(type, 'SUMMARY')]]">
      <svg
        width$="[[height]]"
        height$="[[height]]"
        viewBox="0 0 24 24"
        fill="#848484"
      >
        <path
          d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"
        ></path>
      </svg>
    </template>
    <template is="dom-if" if="[[_isType(type, 'OP')]]">
      <svg
        height$="[[height]]"
        preserveAspectRatio="xMinYMid meet"
        viewBox="0 0 16 8"
      >
        <use
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xlink:href="#op-node-stamp"
          fill$="[[_fill]]"
          stroke$="[[_stroke]]"
          class$="{{_fadedClass(faded, 'ellipse')}}"
          x="8"
          y="4"
        ></use>
      </svg>
    </template>
    <template is="dom-if" if="[[_isType(type, 'META')]]">
      <svg
        height$="[[height]]"
        preserveAspectRatio="xMinYMid meet"
        viewBox="0 0 37 16"
      >
        <rect
          x="1"
          y="1"
          fill$="[[_fill]]"
          stroke$="[[_stroke]]"
          class$="{{_fadedClass(faded, 'rect')}}"
          stroke-width="2px"
          height="14"
          width="35"
          rx="5"
          ry="5"
        ></rect>
      </svg>
    </template>
    <template is="dom-if" if="[[_isType(type, 'API_LIST')]]">
      <svg
        height$="[[height]]"
        preserveAspectRatio="xMinYMid meet"
        viewBox="0 0 37 16"
      >
        <rect
          x="1"
          y="1"
          fill$="[[_fill]]"
          stroke$="[[_stroke]]"
          class$="{{_fadedClass(faded, 'rect')}}"
          stroke-width="2px"
          stroke-dasharray="7, 2"
          height="14"
          width="35"
          rx="5"
          ry="5"
        ></rect>
      </svg>
    </template>
    <template is="dom-if" if="[[_isType(type, 'SERIES')]]">
      <template is="dom-if" if="[[vertical]]">
        <svg
          height$="[[height]]"
          preserveAspectRatio="xMinYMid meet"
          viewBox="0 0 16 15"
        >
          <use
            xmlns:xlink="http://www.w3.org/1999/xlink"
            xlink:href="#op-series-vertical-stamp"
            fill$="[[_fill]]"
            stroke$="[[_stroke]]"
            class$="{{_fadedClass(faded, 'series')}}"
            x="0"
            y="2"
          ></use>
        </svg>
      </template>
      <template is="dom-if" if="[[!vertical]]">
        <svg
          height$="[[height]]"
          preserveAspectRatio="xMinYMid meet"
          viewBox="0 0 24 10"
        >
          <use
            xmlns:xlink="http://www.w3.org/1999/xlink"
            xlink:href="#op-series-horizontal-stamp"
            fill$="[[_fill]]"
            stroke$="[[_stroke]]"
            class$="{{_fadedClass(faded, 'series')}}"
            x="0"
            y="1"
          ></use>
        </svg>
      </template>
    </template>
  `,a([h({type:String}),s("design:type",String)],Dm.prototype,"type",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Dm.prototype,"vertical",void 0),a([h({type:String}),s("design:type",Object)],Dm.prototype,"fillOverride",void 0),a([h({type:String}),s("design:type",Object)],Dm.prototype,"strokeOverride",void 0),a([h({type:Number}),s("design:type",Number)],Dm.prototype,"height",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Dm.prototype,"faded",void 0),a([u("type","fillOverride"),s("design:type",String),s("design:paramtypes",[])],Dm.prototype,"_fill",null),a([u("type","strokeOverride"),s("design:type",String),s("design:paramtypes",[])],Dm.prototype,"_stroke",null),Dm=a([c("tf-graph-icon")],Dm);let Fm=class extends(pr(Pt)){constructor(){super(...arguments),this._rawRegexInput="",this._previousRegexInput="",this._searchTimeoutDelay=150,this._maxRegexResults=42,this.selectedSide=0}get _regexInput(){return this.renderHierarchy,this._rawRegexInput.trim()}_regexInputChanged(){this._regexInput,this._requestSearch()}_clearSearchResults(){this.set("_regexMatches",[])}_requestSearch(){this._searchPending||(this._regexInput!==this._previousRegexInput?(this._searchPending=!0,this._executeSearch(),this.async((()=>{this._searchPending=!1,this._requestSearch()}),this._searchTimeoutDelay)):this._searchPending=!1)}_executeSearch(){if(this._previousRegexInput=this._regexInput,!this._regexInput)return void this._clearSearchResults();try{var e=new RegExp(this._regexInput,"i")}catch(e){return void this._clearSearchResults()}const t=[];Ss.each(this.menu[this.selectedSide],(n=>{if(t.length>=this._maxRegexResults)return!1;e.test(n)&&t.push(n)})),this.set("_regexMatches",t)}_matchClicked(e){let t="";this.renderHierarchy.renderedOpNames.some((e=>e.startsWith("B___")))&&(t=0==this.selectedSide?"N___":"B___");const n=t+e.model.item;this.set("selectedNode",n),sf({actionId:Xu.NODE_SEARCH_RESULT_FOCUSED})}};function jm(e){return new Promise(((t,n)=>{fetch(e).then((e=>{e.ok?e.arrayBuffer().then(t,n):e.text().then(n,n)}))}))}function Um(e,t){return function(t,n,i,r,o){r.setMessage(t);try{let n=lf(t,(()=>null==e?Promise.resolve(null):jm(e)),o);return r.updateProgress(40),n}catch(e){return r.reportError("Failed "+t,e),null}}("Reading metadata pbtxt",0,0,t,Xu.FETCH_METADATA_PBTXT_BYTES).then((e=>pf("Parsing metadata.pbtxt",60,(()=>null!=e?Xm(e,Gm).then((e=>e.step_stats)):Promise.resolve(null)),t,Xu.PARSE_METADATA_PBTXT_INTO_OBJECT)))}Fm.template=Ot`
    <div id="search-container">
      <paper-input id="runs-regex" label="Search nodes (regex)" value="{{_rawRegexInput}}"> </paper-input>
      <div id="search-results-anchor">
        <div id="search-results" style="z-index: 10">
          <template is="dom-repeat" items="[[_regexMatches]]">
            <div id="search-match" on-click="_matchClicked">[[item]]</div>
          </template>
        </div>
      </div>
    </div>
    <style>
      #search-container {
        width: 100%;
        overflow: visible;
      }

      #runs-regex {
        width: 100%;
      }

      #search-results-anchor {
        position: relative;
      }

      #search-results {
        background: var(--tb-orange-strong);
        color: #fff;
        position: absolute;
        max-height: 200px;
        overflow-x: auto;
        overflow-y: auto;
        text-align: left;
        max-width: 100%;
        box-sizing: border-box;
      }

      #search-match {
        padding: 3px;
        float: right;
        width: 100%;
        box-sizing: border-box;
        direction: ltr;
      }

      #search-match:hover {
        background: var(--tb-orange-weak);
        cursor: pointer;
      }
    </style>
  `,a([h({type:Object}),s("design:type",Object)],Fm.prototype,"renderHierarchy",void 0),a([h({type:Object}),s("design:type",Object)],Fm.prototype,"menu",void 0),a([h({type:String,notify:!0}),s("design:type",String)],Fm.prototype,"selectedNode",void 0),a([h({type:String}),s("design:type",String)],Fm.prototype,"_rawRegexInput",void 0),a([h({type:String}),s("design:type",String)],Fm.prototype,"_previousRegexInput",void 0),a([h({type:Number}),s("design:type",Number)],Fm.prototype,"_searchTimeoutDelay",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Fm.prototype,"_searchPending",void 0),a([h({type:Number}),s("design:type",Number)],Fm.prototype,"_maxRegexResults",void 0),a([h({type:Array}),s("design:type",Array)],Fm.prototype,"_regexMatches",void 0),a([h({type:Number}),s("design:type",Number)],Fm.prototype,"selectedSide",void 0),a([u("renderHierarchy","_rawRegexInput"),s("design:type",String),s("design:paramtypes",[])],Fm.prototype,"_regexInput",null),a([p("_regexInput"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Fm.prototype,"_regexInputChanged",null),Fm=a([c("tf-graph-node-search")],Fm);const $m={"library.function":!0,"library.function.node_def":!0,"library.function.node_def.input":!0,"library.function.node_def.attr":!0,"library.function.node_def.attr.value.list.b":!0,"library.function.node_def.attr.value.list.f":!0,"library.function.node_def.attr.value.list.func":!0,"library.function.node_def.attr.value.list.i":!0,"library.function.node_def.attr.value.list.s":!0,"library.function.node_def.attr.value.list.shape":!0,"library.function.node_def.attr.value.list.shape.dim":!0,"library.function.node_def.attr.value.list.tensor":!0,"library.function.node_def.attr.value.list.type":!0,"library.function.node_def.attr.value.shape.dim":!0,"library.function.node_def.attr.value.tensor.string_val":!0,"library.function.node_def.attr.value.tensor.tensor_shape.dim":!0,"library.function.signature.input_arg":!0,"library.function.signature.output_arg":!0,"library.versions":!0,node:!0,"node.input":!0,"node.attr.value.list.b":!0,"node.attr.value.list.f":!0,"node.attr.value.list.func":!0,"node.attr.value.list.i":!0,"node.attr.value.list.s":!0,"node.attr.value.list.shape":!0,"node.attr.value.list.shape.dim":!0,"node.attr.value.list.tensor":!0,"node.attr.value.list.type":!0,"node.attr.value.shape.dim":!0,"node.attr.value.tensor.string_val":!0,"node.attr.value.tensor.tensor_shape.dim":!0},Gm={"step_stats.dev_stats":!0,"step_stats.dev_stats.node_stats":!0,"step_stats.dev_stats.node_stats.output":!0,"step_stats.dev_stats.node_stats.memory":!0,"step_stats.dev_stats.node_stats.output.tensor_description.shape.dim":!0};function qm(e){return Xm(e,$m)}function Xm(e,t){let n={},i=[],r=[],o=n;function a(e,n,i,r){let o=e[n];null==o?e[n]=r.join(".")in t?[i]:i:Array.isArray(o)?o.push(i):e[n]=[o,i]}return function(e,t,n=1e6,i="\n"){return new Promise((function(r,o){!function a(s,l,c){const d=c>=e.byteLength,h=l.split(i);h[0]=s+h[0];const p=d?"":h.pop();for(let e of h)try{t(e)}catch(e){return void o(e)}if(d)return void r(!0);const u=new Blob([e.slice(c,c+n)]),f=new FileReader;f.onload=function(e){a(p,e.target.result,c+n)},f.readAsText(u)}("","",0)}))}(e,(function(e){if(e=e.trim())switch(e[e.length-1]){case"{":let t=e.substring(0,e.length-2).trim(),n={};i.push(o),r.push(t),a(o,t,n,r),o=n;break;case"}":o=i.pop(),r.pop();break;default:let s=function(e){let t=e.indexOf(":"),n=e.substring(0,t).trim(),i=function(e){if("true"===e)return!0;if("false"===e)return!1;if('"'===e[0])return e.substring(1,e.length-1);let t=parseFloat(e);return isNaN(t)?e:t}(e.substring(t+2).trim());if("input_data"===n||"output_data"===n?i=JSON.parse(i.replace(/'{/g,"{").replace(/}'/g,"}").replace(/'None'/g,'{"type": "None"}').replace(/'/g,'"')):"matched_node_link"===n||"subnodes"===n?i=JSON.parse(i.replace(/'/g,'"')):"suggestions"===n&&(i=JSON.parse(i.replace(/'{/g,"{").replace(/}'/g,"}").replace(/'/g,'"'))),"attr"===n){const e=JSON.parse(i.replace(/'/g,'"'));i=Object.keys(e).map((t=>({key:t,value:e[t]})))}return{name:n,value:i}}(e);a(o,s.name,s.value,r.concat(s.name))}})).then((function(){return n}))}class Wm{isNotTpuOp(e){return-1!=e.toLowerCase().search("cpu:")||-1!=e.toLowerCase().search("gpu:")||-1==e.toLowerCase().search("tpu")}opValid(e){return 0==e.name.search(wf)||!e.op||!(!e.device||!this.isNotTpuOp(e.device))||!(!e.device||-1==e.device.search("TPU_SYSTEM"))||Ss.includes(Wm.WHITELIST,e.op)}}var Km,Ym;Wm.WHITELIST=["Abs","Acos","Acosh","Add","AddN","AddV2","AdjustContrastv2","AdjustHue","AdjustSaturation","All","AllToAll","Angle","Any","ApproximateEqual","ArgMax","ArgMin","Asin","Asinh","Assert","AssignAddVariableOp","AssignSubVariableOp","AssignVariableOp","Atan","Atan2","Atanh","AvgPool","AvgPool3D","AvgPool3DGrad","AvgPoolGrad","BatchMatMul","BatchMatMulV2","BatchToSpace","BatchToSpaceND","BesselI0e","BesselI1e","Betainc","BiasAdd","BiasAddGrad","BiasAddV1","Bitcast","BitwiseAnd","BitwiseOr","BitwiseXor","BroadcastArgs","BroadcastGradientArgs","BroadcastTo","Bucketize","Case","Cast","Ceil","CheckNumerics","Cholesky","ClipByValue","CollectivePermute","CollectiveReduceV2","Complex","ComplexAbs","Concat","ConcatOffset","ConcatV2","Conj","ConjugateTranspose","Const","ControlTrigger","Conv2D","Conv2DBackpropFilter","Conv2DBackpropInput","Conv3D","Conv3DBackpropFilterV2","Conv3DBackpropInputV2","Cos","Cosh","Cross","CrossReplicaSum","Cumprod","Cumsum","DataFormatDimMap","DataFormatVecPermute","DepthToSpace","DepthwiseConv2dNative","DepthwiseConv2dNativeBackpropFilter","DepthwiseConv2dNativeBackpropInput","Dequantize","DeviceIndex","Diag","DiagPart","Digamma","Div","DivNoNan","DynamicStitch","Einsum","Elu","EluGrad","Empty","EmptyTensorList","EnsureShape","Equal","Erf","Erfc","Erfinv","Exp","ExpandDims","Expm1","ExtractImagePatches","FFT","FFT2D","FFT3D","FakeParam","FakeQuantWithMinMaxArgs","FakeQuantWithMinMaxArgsGradient","FakeQuantWithMinMaxVars","FakeQuantWithMinMaxVarsGradient","Fill","Floor","FloorDiv","FloorMod","FusedBatchNorm","FusedBatchNormGrad","FusedBatchNormGradV2","FusedBatchNormGradV3","FusedBatchNormV2","FusedBatchNormV3","Gather","GatherNd","GatherV2","GetItem","Greater","GreaterEqual","HSVToRGB","IFFT","IFFT2D","IFFT3D","IRFFT","IRFFT2D","IRFFT3D","Identity","IdentityN","If","Igamma","IgammaGradA","Igammac","Imag","InTopKV2","InfeedDequeue","InfeedDequeueTuple","InplaceAdd","InplaceUpdate","Inv","Invert","InvertPermutation","IsFinite","IsInf","IsNan","KthOrderStatistic","L2Loss","LRN","LRNGrad","LeakyRelu","LeakyReluGrad","LeftShift","Less","LessEqual","Lgamma","LinSpace","ListDiff","Log","Log1p","LogSoftmax","LogicalAnd","LogicalNot","LogicalOr","LowerBound","MakeUnique","MatMul","MatrixBandPart","MatrixDiag","MatrixDiagPart","MatrixDiagPartV2","MatrixDiagPartV3","MatrixDiagV2","MatrixDiagV3","MatrixInverse","MatrixSetDiag","MatrixSetDiagV2","MatrixSetDiagV3","MatrixSolve","MatrixTriangularSolve","Max","MaxPool","MaxPool3D","MaxPool3DGrad","MaxPool3DGradGrad","MaxPoolGrad","MaxPoolGradGrad","MaxPoolGradGradV2","MaxPoolGradV2","MaxPoolV2","Maximum","Mean","Min","Minimum","MirrorPad","MirrorPadGrad","Mod","Mul","MulNoNan","Multinomial","Ndtri","Neg","NextAfter","NoOp","NonMaxSuppressionV4","NotEqual","OneHot","OnesLike","OutfeedEnqueue","OutfeedEnqueueTuple","Pack","Pad","PadV2","ParallelDynamicStitch","ParameterizedTruncatedNormal","PartitionedCall","PlaceholderWithDefault","Polygamma","PopulationCount","Pow","PreventGradient","Prod","Qr","QuantizeAndDequantizeV2","QuantizeAndDequantizeV3","RFFT","RFFT2D","RFFT3D","RGBToHSV","RandomGammaGrad","RandomShuffle","RandomStandardNormal","RandomUniform","RandomUniformInt","Range","Rank","ReadVariableOp","Real","RealDiv","Reciprocal","ReciprocalGrad","Relu","Relu6","Relu6Grad","ReluGrad","Reshape","ResizeBilinear","ResizeBilinearGrad","ResizeNearestNeighbor","ResizeNearestNeighborGrad","ResourceApplyAdaMax","ResourceApplyAdadelta","ResourceApplyAdagrad","ResourceApplyAdagradDA","ResourceApplyAdagradV2","ResourceApplyAdam","ResourceApplyAddSign","ResourceApplyCenteredRMSProp","ResourceApplyFtrl","ResourceApplyFtrlV2","ResourceApplyGradientDescent","ResourceApplyKerasMomentum","ResourceApplyMomentum","ResourceApplyPowerSign","ResourceApplyProximalAdagrad","ResourceApplyProximalGradientDescent","ResourceApplyRMSProp","ResourceGather","ResourceScatterAdd","ResourceScatterDiv","ResourceScatterMax","ResourceScatterMin","ResourceScatterMul","ResourceScatterNdAdd","ResourceScatterNdSub","ResourceScatterNdUpdate","ResourceScatterSub","ResourceScatterUpdate","ResourceStridedSliceAssign","Reverse","ReverseSequence","ReverseV2","RightShift","Rint","RngReadAndSkip","RngSkip","Roll","Round","Rsqrt","RsqrtGrad","ScatterNd","Select","SelectV2","SelfAdjointEigV2","Selu","SeluGrad","Shape","ShapeN","Sigmoid","SigmoidGrad","Sign","Sin","Sinh","Size","Slice","Snapshot","Softmax","SoftmaxCrossEntropyWithLogits","Softplus","SoftplusGrad","Softsign","SoftsignGrad","SpaceToBatch","SpaceToBatchND","SpaceToDepth","SparseMatMul","SparseSoftmaxCrossEntropyWithLogits","SparseToDense","Split","SplitV","Sqrt","SqrtGrad","Square","SquaredDifference","Squeeze","StackCloseV2","StackPopV2","StackPushV2","StackV2","StatefulPartitionedCall","StatefulStandardNormalV2","StatefulTruncatedNormal","StatefulUniform","StatefulUniformFullInt","StatefulUniformInt","StatelessCase","StatelessIf","StatelessMultinomial","StatelessRandomGetAlg","StatelessRandomGetKeyCounter","StatelessRandomGetKeyCounterAlg","StatelessRandomNormal","StatelessRandomNormalV2","StatelessRandomUniform","StatelessRandomUniformFullInt","StatelessRandomUniformFullIntV2","StatelessRandomUniformInt","StatelessRandomUniformIntV2","StatelessRandomUniformV2","StatelessTruncatedNormal","StatelessTruncatedNormalV2","StatelessWhile","StopGradient","StridedSlice","StridedSliceGrad","Sub","Sum","Svd","SymbolicGradient","TPUEmbeddingActivations","Tan","Tanh","TanhGrad","TensorArrayCloseV3","TensorArrayConcatV3","TensorArrayGatherV3","TensorArrayGradV3","TensorArrayReadV3","TensorArrayScatterV3","TensorArraySizeV3","TensorArraySplitV3","TensorArrayV3","TensorArrayWriteV3","TensorListConcatV2","TensorListElementShape","TensorListFromTensor","TensorListGather","TensorListGetItem","TensorListLength","TensorListPopBack","TensorListPushBack","TensorListReserve","TensorListSetItem","TensorListSplit","TensorListStack","TensorScatterAdd","TensorScatterMax","TensorScatterMin","TensorScatterSub","TensorScatterUpdate","TensorStridedSliceUpdate","Tile","TopKUnique","TopKV2","TopKWithUnique","Transpose","TridiagonalSolve","TruncateDiv","TruncateMod","TruncatedNormal","Unique","Unpack","UnsortedSegmentMax","UnsortedSegmentMin","UnsortedSegmentProd","UnsortedSegmentSum","UpperBound","VarIsInitializedOp","VariableShape","Where","While","Xdivy","XlaBroadcastHelper","XlaConv","XlaConvV2","XlaDequantize","XlaDot","XlaDotV2","XlaDynamicSlice","XlaDynamicUpdateSlice","XlaEinsum","XlaGather","XlaHostCompute","XlaIf","XlaKeyValueSort","XlaPad","XlaRecv","XlaRecvFromHost","XlaReduce","XlaReduceWindow","XlaReplicaId","XlaScatter","XlaSelectAndScatter","XlaSelfAdjointEig","XlaSend","XlaSendToHost","XlaSetBound","XlaSetDynamicDimensionSize","XlaSharding","XlaSort","XlaSpmdFullToShardShape","XlaSpmdShardToFullShape","XlaSvd","XlaVariadicReduce","XlaVariadicSort","XlaWhile","Xlog1py","Xlogy","ZerosLike","Zeta","Enter","Exit","LoopCond","Merge","NextIteration","Switch","_Arg","_ArrayToList","_FusedBatchNormEx","_ListToArray","_ParallelConcatUpdate","_RecvTPUEmbeddingActivations","_RecvTPUEmbeddingDeduplicationData","_Retval","_SendTPUEmbeddingGradients","_TPUCompile","_TPUExecute","_UnaryOpsComposition","TPUCompilationResult","TPUReplicatedInput","TPUReplicatedOutput","TPUReplicateMetadata","MergeV2Checkpoints","RestoreV2","SaveV2","Abort","Assert","Assign","Placeholder","PlaceholderV2","ShardedFilename","StringJoin","Variable","VariableV2","VarHandleOp","AudioSummary","AudioSummaryV2","DebugNumericSummary","HistogramSummary","ImageSummary","MergeSummary","ScalarSummary","StatsAggregatorSummary"];let Jm=class extends(pr(Pt)){constructor(){super(...arguments),this.compatibilityProvider=new Wm,this.hierarchyParams=cg,this._template=null}getColors(){return this.colors}_selectionChanged(){this.selection&&this.debounce("selectionchange",(()=>{this._load(this.selection)}))}_load(e){const{run:t,tag:n,type:i,batch:r,step:o}=e;switch(i){case Wu.OP_GRAPH:case Wu.CONCEPTUAL_GRAPH:{(function(){this._setOutStats(null)}).bind(this)();const e=new URLSearchParams;e.set("run",t),e.set("conceptual",String(i===Wu.CONCEPTUAL_GRAPH)),n&&e.set("tag",n),e.set("batch",String(-1===r?-1:r-1)),e.set("step",String(-1===o?-1:o-1));const a=hs().pluginRouteForSrc("graph_ascend","/compoments",e);e.set("node","root");const s=hs().pluginRouteForSrc("graph_ascend","/subgraph",e);return jm(a).then(function(e){let t={Menu:[],ToolTip:{},Colors:{},MicroSteps:0,StepList:[],UnMatchedNode:[],match:[]};try{t=JSON.parse((new TextDecoder).decode(e).replace(/'/g,'"'))}catch(e){console.error("Parse tooltips failed, please check the format of tooltips in the input vis file")}const n=Object.entries(t.ToolTip),i=Object.fromEntries(n);var r;this._setMenu(t.Menu),this._setTooltips(i),this._setColors(t.Colors),this._setColorset(Object.entries(t.Colors)),this._setUnmatched(t.UnMatchedNode),this._setMatchedlist(t.match),r=t.Colors,Object.keys(sm).forEach((e=>delete sm[e])),Object.assign(sm,r);const o=Number(t.MicroSteps);if(o){const e=["ALL",...Array.from({length:o},((e,t)=>t))];this._setMicrosteps(e)}else this._setMicrosteps([]);Number(t.MicroSteps)?this._setSteplist(t.StepList):this._setSteplist([])}.bind(this)),this._fetchAndConstructHierarchicalGraph(s).then((()=>{this._graphRunTag={run:t,tag:n}}))}case Wu.PROFILE:{const{tags:e}=this.datasets.find((({name:e})=>e===t)),i=e.find((e=>e.tag===n)).opGraph?n:null;console.assert(e.find((e=>e.tag===i)),`Required tag (${i}) is missing.`);const a=this._graphRunTag&&this._graphRunTag.run===t&&this._graphRunTag.tag===i?Promise.resolve():this._load({run:t,tag:i,type:Wu.OP_GRAPH,batch:r,step:o}),s=new URLSearchParams;s.set("tag",n),s.set("run",t);const l=hs().pluginRouteForSrc("graph_ascend","/run_metadata",s);return a.then((()=>this._readAndParseMetadata(l)))}default:return Promise.reject(new Error(`Unknown selection type: ${i}`))}}_readAndParseMetadata(e){this.set("progress",{value:0,msg:""}),Um(e,cf(this)).then(function(e){this._setOutStats(e)}.bind(this))}_fetchAndConstructHierarchicalGraph(e,t){return this.set("progress",{value:0,msg:""}),function(e,t,n,i=new Wm,r=cg){const o=df(e,30,"Data"),a=df(e,20,"Graph"),s=df(e,50,"Namespace hierarchy"),c=Date.now();return function(e,t,n){return pf("Reading graph pbtxt",40,(()=>l(this,void 0,void 0,(function*(){const n=Date.now();if(t){const e=yield new Promise((function(e,n){let i=new FileReader;i.onload=()=>e(i.result),i.onerror=()=>n(i.error),i.readAsArrayBuffer(t)}));return sf({timingId:Xu.FETCH_PBTXT_BYTES_FROM_FILESYSTEM,eventValue:Date.now()-n}),e}const i=yield jm(e);return sf({timingId:Xu.FETCH_PBTXT_BYTES_FROM_SERVER,eventValue:Date.now()-n}),i}))),n,Xu.FETCH_PBTXT_BYTES).then((e=>pf("Parsing graph.pbtxt",60,(()=>qm(e)),n,Xu.PARSE_PBTXT_INTO_OBJECT)))}(t,n,o).then((function(e){if(!e.node)throw new Error("The graph is empty. This can happen when TensorFlow could not trace any graph. Please refer to https://github.com/tensorflow/tensorboard/issues/1961 for more information.");return Wf(e,Xf,a)}),(()=>{throw new Error("Malformed GraphDef. This can sometimes be caused by a bad network connection or difficulty reconciling multiple GraphDefs; for the latter case, please refer to https://github.com/tensorflow/tensorboard/issues/1929.")})).then((e=>l(this,void 0,void 0,(function*(){!function(e,t){if(null===t)throw new Error("Compatibility provider required, but got: "+t);Ss.each(e.nodes,(e=>{e.compatible=t.opValid(e),Ss.each(e.inEmbeddings,(e=>{e.compatible=t.opValid(e)})),Ss.each(e.outEmbeddings,(e=>{e.compatible=t.opValid(e)}))}))}(e,i);const t=yield dg(e,r,s);return sf({timingId:Xu.GRAPH_LOAD_SUCCEEDED,eventValue:Date.now()-c}),{graph:e,graphHierarchy:t}})))).catch((t=>{const n=`Graph visualization failed.\n\n${t}`;throw e.reportError(n,t),sf({timingId:Xu.GRAPH_LOAD_FAILED,eventValue:Date.now()-c}),t}))}(cf(this),e,void 0!==t?t:null,this.compatibilityProvider,this.hierarchyParams).then(function({graph:e,graphHierarchy:t}){this._setOutGraph(e),this._setOutGraphHierarchy(t)}.bind(this))}_selectedFileChanged(){var e,t=this.selectedFile;if(!t)return;const n=t.target,i=null===(e=n.files)||void 0===e?void 0:e[0];i&&(n.value="",this._fetchAndConstructHierarchicalGraph(null,i))}};a([h({type:Array}),s("design:type",Array)],Jm.prototype,"datasets",void 0),a([h({type:Object,notify:!0}),s("design:type",Object)],Jm.prototype,"progress",void 0),a([h({type:Object}),s("design:type",Object)],Jm.prototype,"selection",void 0),a([h({type:Object}),s("design:type",Object)],Jm.prototype,"selectedFile",void 0),a([h({type:Object}),s("design:type",Object)],Jm.prototype,"compatibilityProvider",void 0),a([h({type:Object}),s("design:type",Object)],Jm.prototype,"hierarchyParams",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type","function"==typeof(Km=sg)?Km:Object)],Jm.prototype,"outGraphHierarchy",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type","function"==typeof(Ym=Pf)?Ym:Object)],Jm.prototype,"outGraph",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type",Object)],Jm.prototype,"outStats",void 0),a([h({type:Object}),s("design:type",Object)],Jm.prototype,"_graphRunTag",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type",Object)],Jm.prototype,"menu",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type",Object)],Jm.prototype,"colorset",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type",Object)],Jm.prototype,"tooltips",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type",Object)],Jm.prototype,"colors",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type",Object)],Jm.prototype,"microsteps",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type",Object)],Jm.prototype,"steplist",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type",Object)],Jm.prototype,"unmatched",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type",Object)],Jm.prototype,"matchedlist",void 0),a([p("selection","compatibilityProvider"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Jm.prototype,"_selectionChanged",null),a([p("selectedFile","compatibilityProvider"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Jm.prototype,"_selectedFileChanged",null),Jm=a([c("tf-graph-dashboard-loader")],Jm);let Zm=class extends Pt{constructor(){super(...arguments),this.value="",this.delimiterPattern=""}get _parts(){var e=this.value,t=this.delimiterPattern;const n=[];for(;;){const i=new RegExp(t,"g");if(i.test(e),0===i.lastIndex){n.push(e);break}n.push(e.slice(0,i.lastIndex)),e=e.slice(i.lastIndex)}return n}};Zm.template=Ot`
    <!--
      This ugly formatting is required to prevent spaces from slipping
      into the HTML.
    -->
    <template is="dom-repeat" items="[[_parts]]" as="part"
      >[[part]]<wbr
    /></template>
  `,a([h({type:String}),s("design:type",String)],Zm.prototype,"value",void 0),a([h({type:String}),s("design:type",String)],Zm.prototype,"delimiterPattern",void 0),a([u("value","delimiterPattern"),s("design:type",Array),s("design:paramtypes",[])],Zm.prototype,"_parts",null),Zm=a([c("tf-wbr-string")],Zm);let Qm=class extends(pr(Pt)){constructor(){super(...arguments),this.node=null,this.renderInfo=null,this.type=null,this.vertical=!1,this.const=!1,this.summary=!1,this.fill=null,this.height=20}_computeFillOverride(e,t,n){return e&&t?Sm(t):n}_getStrokeOverride(e){return e?Cm(e):null}_getType(e,t,n,i){const{y:o}=r;if(e)switch(e.type){case Tf.OP:{const i=e.op;return"string"!=typeof i?o.OP:"Const"===i||n?o.CONST:i.endsWith("Summary")||t?o.SUMMARY:o.OP}case Tf.META:return o.META;case Tf.SERIES:return o.SERIES}return i}_isVertical(e,t){return e?e.hasNonControlEdges:!!t}_getFaded(e){return e&&e.isFadedOut}_onFillOverrideChanged(e,t){const{node:n,renderInfo:i}=this;e!==t&&xm(this.$.icon.getSvgDefinableElement()),n&&i&&Sm(i)}};Qm.template=Ot`
    <style>
      tf-graph-icon {
        --tb-graph-faded: var(--tb-graph-faded);
      }
    </style>
    <tf-graph-icon
      id="icon"
      type="[[_getType(node, summary, const, type)]]"
      height="[[height]]"
      fill-override="[[_fillOverride]]"
      stroke-override="[[_getStrokeOverride(_fillOverride)]]"
      faded="[[_getFaded(renderInfo)]]"
      vertical="[[_isVertical(node, vertical)]]"
    ></tf-graph-icon>
  `,a([h({type:Object}),s("design:type",Object)],Qm.prototype,"node",void 0),a([h({type:Object}),s("design:type",Object)],Qm.prototype,"renderInfo",void 0),a([h({type:String}),s("design:type",Object)],Qm.prototype,"type",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Qm.prototype,"vertical",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Qm.prototype,"const",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Qm.prototype,"summary",void 0),a([h({type:String}),s("design:type",Object)],Qm.prototype,"fill",void 0),a([h({type:Number}),s("design:type",Number)],Qm.prototype,"height",void 0),a([h({type:String,computed:"_computeFillOverride(node, renderInfo, fill)",observer:"_onFillOverrideChanged"}),s("design:type",String)],Qm.prototype,"_fillOverride",void 0),Qm=a([c("tf-node-icon")],Qm);let ev=class extends(pr(us(Pt))){_itemTypeChanged(){"subnode"!==this.itemType?this.$["list-item"].classList.add("clickable"):this.$["list-item"].classList.remove("clickable")}_nodeListener(e){var t;this.fire("node-list-item-"+e.type,{cardNode:null===(t=this.cardNode)||void 0===t?void 0:t.name,nodeName:this.name,type:this.itemType})}_fadedClass(e){return e&&e.isFadedOut?"faded":""}};var tv;ev.template=Ot`
    <style>
      #list-item {
        width: 100%;
        color: var(--secondary-text-color);
        font-size: 11pt;
        font-weight: 400;
        position: relative;
        display: inline-block;
      }

      #list-item:hover {
        background-color: var(--google-yellow-100);
      }

      :host(.dark-mode) #list-item:hover {
        background-color: var(--paper-yellow-900);
        color: #fff;
      }

      .clickable {
        cursor: pointer;
      }

      #list-item span {
        margin-left: 40px;
      }

      #list-item.excluded span {
        color: #999;
      }

      #list-item span.edge-label {
        float: right;
        font-size: 10px;
        margin-left: 3px;
        margin-right: 5px;
      }

      .node-icon {
        position: absolute;
        top: 1px;
        left: 2px;
      }

      .faded span {
        color: var(--tb-graph-faded);
      }
    </style>
    <div
      id="list-item"
      on-mouseover="_nodeListener"
      on-mouseout="_nodeListener"
      on-click="_nodeListener"
    >
      <div class$="{{_fadedClass(itemRenderInfo)}}">
        <tf-node-icon
          class="node-icon"
          height="12"
          node="[[itemNode]]"
          render-info="[[itemRenderInfo]]"
          template-index="[[templateIndex]]"
        ></tf-node-icon>
        <span title$="[[name]]">[[name]]</span>
        <span class="edge-label">[[edgeLabel]]</span>
      </div>
    </div>
  `,a([h({type:Object}),s("design:type",Object)],ev.prototype,"cardNode",void 0),a([h({type:Object}),s("design:type",Object)],ev.prototype,"itemNode",void 0),a([h({type:String}),s("design:type",String)],ev.prototype,"edgeLabel",void 0),a([h({type:Object}),s("design:type",Object)],ev.prototype,"itemRenderInfo",void 0),a([h({type:String}),s("design:type",String)],ev.prototype,"name",void 0),a([h({type:String,observer:"_itemTypeChanged"}),s("design:type",String)],ev.prototype,"itemType",void 0),a([h({type:Object}),s("design:type",Object)],ev.prototype,"templateIndex",void 0),ev=a([c("tf-node-list-item")],ev);let nv=class extends(pr(Pt)){constructor(){super(...arguments),this.name="",this.attrs=[],this._attrExpanded=!0}get _displayAttrs(){const e=this.attrs.find((e=>"error_key"===e.key));if(e&&Array.isArray(e.value)){const t=e.value,n=[];return Ss.each(this.attrs.filter((e=>"error_key"!==e.key)),(e=>{t.includes(e.key)?n.push(Object.assign(Object.assign({},e),{className:"attr-list-item attr-error"})):n.push(Object.assign(Object.assign({},e),{className:"attr-list-item"}))})),n}return Ss.map(this.attrs,(e=>Object.assign(Object.assign({},e),{className:"attr-list-item"})))}_getToggleIcon(e){return e?"expand-less":"expand-more"}_toggleInputsDataExpanded(){this._attrExpanded=!this._attrExpanded,this.fire("io-item-toggle")}};var iv,rv,ov,av;nv.template=Ot`
    <style>
      .sub-list-group {
        font-weight: 500;
        font-size: 12pt;
        width: 100%;
      }

      .toggle-button {
        float: right;
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      .io-name {
        display: inline-block;
        max-width: 250px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 12pt;
        font-weight: 400;
      }

      .attr-left {
        float: left;
        width: 30%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: var(--secondary-text-color);
        font-size: 11pt;
        font-weight: 400;
      }

      .attr-right {
        margin-left: 35%;
        word-wrap: break-word;
        color: var(--secondary-text-color);
        font-size: 11pt;
        font-weight: 400;
      }

      .attr-list-item {
        padding-left: 8px;
      }

      .attr-error > div {
        color: red;
      }
    </style>
    <div>
      <paper-icon-button
        icon="{{_getToggleIcon(_attrExpanded)}}"
        on-click="_toggleInputsDataExpanded"
        class="toggle-button"
      >
      </paper-icon-button>
      <div class="sub-list-group">
        <span class="io-name" title="[[name]]">[[name]]</span>
        <template is="dom-if" if="{{_attrExpanded}}">
          <iron-list items="[[_displayAttrs]]">
            <template>
              <div class$="[[item.className]]">
                <div class="attr-left" title="[[item.tooltip]]">
                  [[item.key]]
                </div>
                <div class="attr-right" title="[[item.value]]">
                  [[item.value]]
                </div>
              </div>
            </template>
          </iron-list>
        </template>
      </div>
    </div>
  `,a([h({type:String}),s("design:type",String)],nv.prototype,"name",void 0),a([h({type:Object}),s("design:type","function"==typeof(tv="undefined"!=typeof Array&&Array)?tv:Object)],nv.prototype,"attrs",void 0),a([h({type:Boolean}),s("design:type",Boolean)],nv.prototype,"_attrExpanded",void 0),a([u("attrs"),s("design:type",Array),s("design:paramtypes",[])],nv.prototype,"_displayAttrs",null),nv=a([c("node-ioinfo-item")],nv);const sv=[];let lv=class extends(pr(Pt)){constructor(){super(...arguments),this._expanded=!0,this._suggestExpanded=!0,this._attrExpanded=!0,this._inputsExpanded=!0,this._outputsExpanded=!0,this._stackExpanded=!0,this._openedControlPred=!1,this._openedControlSucc=!1,this._templateIndex=null}expandNode(){this.fire("_node.expand",this.node)}_getNode(e,t){return t.node(e)}changeSuggestion(){let e=this._node;if(e&&e.suggestions&&e.suggestions.text){let t=e.suggestions.text;Ss.each(e.suggestions,((e,n)=>{"text"!==n&&(t=t.replace(new RegExp(n,"g"),`<a href="${e}" target="_blank">${n}</a>`))})),setTimeout((()=>{var e;let n=null===(e=this.shadowRoot)||void 0===e?void 0:e.getElementById("suggestion-content");n&&(n.innerHTML=t)}))}}_getNodeStats(e,t){var n=this._getNode(e,t);return n?n.stats:null}_getTotalMicros(e){return e?e.getTotalMicros():0}get _hasDisplayableNodeStats(){return mf(this._nodeStats)}get _suggestions(){const e=this._node;if(e&&e.suggestions&&e.suggestions.text)return e.suggestions}get _nodeStatsFormattedBytes(){var e=this._nodeStats;if(e&&e.totalBytes)return gf(e.totalBytes,uf)}get _nodeStatsFormattedComputeTime(){var e=this._nodeStats;if(e&&e.getTotalMicros())return gf(e.getTotalMicros(),ff)}get _nodeStatsFormattedOutputSizes(){var e=this._nodeStats;if(e&&e.outputSize&&e.outputSize.length)return Ss.map(e.outputSize,(function(e){return 0===e.length?"scalar":"["+e.join(", ")+"]"}))}_getRenderInfo(e,t){return this.renderHierarchy.getOrCreateRenderNodeByName(e)}_getNodeName(e,t){return e?"Edge":t.name.startsWith("N___")||t.name.startsWith("B___")?t.name.slice(4):t.name}_objectToArray(e){return Object.keys(e).map((t=>{let n=t;return n in this.tooltips&&(n+=`: ${this.tooltips[t]}`),{key:t,tooltip:n,value:e[t]}}))}get _inputsData(){const e=this._node;let t="";if(void 0!==e&&(t=this._node.name.startsWith("N___")||this._node.name.startsWith("B___")?this._node.name.slice(4):this._node.name),!e||!e.inputData)return[];const n=JSON.parse(JSON.stringify(e.inputData));let i=0;const r=sv.find((e=>Array.isArray(e)&&e.length>0&&e[0]===this._node.name));if(r)for(let e in n){if(n.hasOwnProperty(e)&&this._node.name.startsWith("N___")){const t=n[e];if(t.hasOwnProperty("Norm")&&0!=sv.length&&0!=r[2].length)for(let[e,n]of r[2][i].entries())t[n[0]]=n[1]}if(i++,i==r[2].length)break}return Object.keys(n).map(((e,i)=>({key:e.replace(t+".",""),value:this._objectToArray(n[e])})))}get _outputsData(){const e=this._node;let t="";if(void 0!==e&&(t=this._node.name.startsWith("N___")||this._node.name.startsWith("B___")?this._node.name.slice(4):this._node.name),!e||!e.outputData)return[];const n=JSON.parse(JSON.stringify(e.outputData));let i=0;const r=sv.find((e=>Array.isArray(e)&&e.length>0&&e[0]===this._node.name));if(r)for(let e in n){if(n.hasOwnProperty(e)&&this._node.name.startsWith("N___")){const t=n[e];if(t.hasOwnProperty("Norm")&&0!=sv.length&&0!=r[3].length)for(let[e,n]of r[3][i].entries())t[n[0]]=n[1]}if(i++,i==r[3].length)break}return Object.keys(n).map(((e,i)=>({key:e.replace(t+".",""),value:this._objectToArray(n[e])})))}get _stackData(){const e=this._node;if(!e||!e.stackData)return[];let t=e.stackData.slice(1,-1).split(", '");return t=t.map((e=>e.replace(/^'/,"").replace(/'$/,""))),t}get _attributes(){var e;if(this.selectedEdge){const n=null===(e=this.selectedEdge)||void 0===e?void 0:e.label.metaedge.baseEdgeList[0];if(!n||!n.attr)return[];var t=[];Ss.each(Object.keys(n.attr),(e=>{var i;"_path"!==e&&t.push({key:e,value:JSON.stringify(null===(i=n.attr)||void 0===i?void 0:i[e])})}))}else{var n=this._node;if(this.async(this._resizeList.bind(this,"#attributesList")),!n||!n.attr)return[];t=[];const e=this.tooltips;"N___"==n.name.slice(0,4)||"B___"==n.name.slice(0,4)?Ss.each(n.attr,(function(n){if(n.key!==Cf){let i=n.key;n.key in e&&(i+=`: ${e[n.key]}`),t.push({key:n.key,tooltip:i,value:"object"!=typeof n.value||Array.isArray(n.value)?Array.isArray(n.value)&&n.value.every((e=>!Array.isArray(e)))?JSON.stringify(n.value):Array.isArray(n.value)&&n.value.some(Array.isArray)?JSON.stringify(n.value.flat()):"string"==typeof n.value?n.value:JSON.stringify(n.value):JSON.stringify(n.value)})}})):Ss.each(n.attr,(function(n){if(n.key!==Cf){let r=n.key;n.key in e&&(r+=`: ${e[n.key]}`),t.push({key:n.key,tooltip:r,value:"object"!=typeof n.value||Array.isArray(n.value)?Array.isArray(n.value)&&n.value.every((e=>!Array.isArray(e)))?JSON.stringify(n.value):Array.isArray(n.value)&&n.value.some(Array.isArray)?n.value.map((e=>[`Name: ${e[0]||""}\n`,`Type: ${e[1]||""}\n`,`A Core: ${e[2]||""}\n`,`Duration(US): ${e[3]||""}\n`,`Input Shapes: ${e[4]||""}\n`,`Input Data Types: ${e[5]||""}\n`].join("\n"))):"string"==typeof n.value?n.value:JSON.stringify(n.value):(i=JSON.stringify(n.value),i.split(/,(?=(?:[^"]*"[^"]*")*[^"]*$)/g)).join("\n")})}var i}))}return t}get _device(){var e=this._node;return e?e.device:null}get _successors(){var e=this._node,t=this.graphHierarchy;if(this._refreshNodeItemList("inputsList"),e)return this._convertEdgeListToEdgeInfoList(t.getSuccessors(e.name),!1,e.isGroupNode);if(this.selectedEdge){const e={control:[],regular:[this.selectedEdge.label.metaedge]};return this._convertEdgeListToEdgeInfoList(e,!1,!1)}return{regular:[],control:[]}}get _predecessors(){var e=this._node,t=this.graphHierarchy;if(this._refreshNodeItemList("outputsList"),e)return this._convertEdgeListToEdgeInfoList(t.getPredecessors(e.name),!0,e.isGroupNode);if(this.selectedEdge){const e={control:[],regular:[this.selectedEdge.label.metaedge]};return this._convertEdgeListToEdgeInfoList(e,!0,!1)}return{regular:[],control:[]}}_refreshNodeItemList(e){this.async(this._resizeList.bind(this,`#${e}`))}_onInputsDataItemToggled(){this.async(this._resizeList.bind(this,"#inputsList"))}_onOutputsDataItemToggled(){this.async(this._resizeList.bind(this,"#outputsList"))}_convertEdgeListToEdgeInfoList(e,t,n){var i=(e,t)=>{const n=e.split(bf);n.pop(),Ss.each(n,(e=>{t.includes(e)||t.push(e)}))},r=(e,n,i)=>Ss.map(e.baseEdgeList,(e=>{var r,o=t?e.v:e.w;if((o=null==o?void 0:o.split(bf).pop())&&i.includes(o))return;let a=null===(r=e.attr)||void 0===r?void 0:r.id;if("number"==typeof a){if(n.includes(a))return;n.push(a)}return{name:o,node:this._getNode(o,this.graphHierarchy),edgeLabel:nm(e,this.renderHierarchy),renderInfo:this._getRenderInfo(o,this.renderHierarchy)}})),o=function(e){var n=[];let o=[],a=[];return Ss.each(e,(e=>{const n=t?e.v:e.w;n&&i(n,a),Ss.each(e.baseEdgeList,(e=>{var n;const r=t?e.v:e.w;r&&i(r,a);let o=null===(n=e.attr)||void 0===n?void 0:n._path;o&&i(o,a)}))})),Ss.each(e,(e=>{var s=t?e.v:e.w;i(s,a),n=n.concat(r(e,o,a))})),n=n.filter((e=>!!e&&!a.includes(e.name)))}.bind(this);return{regular:o(e.regular),control:o(e.control)}}get _subnodes(){var e=this._node;return e&&e.metagraph?e.metagraph.nodes():null}get _totalPredecessors(){var e,t;return this.selectedEdge?0:Object.keys(null!==(t=null===(e=this._node)||void 0===e?void 0:e.inputData)&&void 0!==t?t:{}).length}get _totalSuccessors(){var e,t;return this.selectedEdge?0:Object.keys(null!==(t=null===(e=this._node)||void 0===e?void 0:e.outputData)&&void 0!==t?t:{}).length}_toggleControlPred(){this._openedControlPred=!this._openedControlPred}_toggleControlSucc(){this._openedControlSucc=!this._openedControlSucc}_toggleExpanded(){this._expanded=!this._expanded}_toggleSuggestExpanded(){this._suggestExpanded=!this._suggestExpanded}_toggleAttrExpanded(){this._attrExpanded=!this._attrExpanded}_toggleInputsExpanded(){this._inputsExpanded=!this._inputsExpanded}_toggleOutputsExpanded(){this._outputsExpanded=!this._outputsExpanded}_toggleStackExpanded(){this._stackExpanded=!this._stackExpanded}_getToggleIcon(e){return e?"expand-less":"expand-more"}_resetState(){this._openedControlPred=!1,this._openedControlSucc=!1,this.set("_groupButtonText",gm(this._node))}_resizeList(e){var t,n=document.querySelector(e)||(null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector(e));n&&n.fire("iron-resize")}_nodeIncludeStateChanged(e,t){this.set("_auxButtonText",tg(e))}_isLibraryFunction(e){return e&&e.name.startsWith(wf)}_isInSeries(e){return um(e)}_graphHierarchyChanged(){this._templateIndex=this.graphHierarchy.getTemplateIndex(),this.graphHierarchy.addListener(ag.TEMPLATES_UPDATED,(()=>{this._templateIndex=this.graphHierarchy.getTemplateIndex()}))}};function cv(e){Object.keys(sv).forEach((e=>delete sv[e])),Object.assign(sv,e)}var dv;lv.template=Ot`
    <style>
      .sub-list-group {
        font-weight: 500;
        font-size: 12pt;
        padding-bottom: 8px;
        width: 100%;
      }

      .sub-list {
        max-height: 300px;
        overflow-y: scroll;
      }

      .attr-list-item {
        padding-left: 8px;
      }

      .attr-left {
        float: left;
        width: 30%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: var(--secondary-text-color);
        font-size: 11pt;
        font-weight: 400;
      }

      .attr-left1 {
        float: left;
        width: 100%;
        white-space: nowrap;
        color: var(--secondary-text-color);
        font-size: 11pt;
        font-weight: 400;
      }

      .attr-right {
        margin-left: 35%;
        word-wrap: break-word;
        color: var(--secondary-text-color);
        font-weight: 400;
        white-space: pre-line;
      }

      .sub-list-table {
        display: table;
        width: 100%;
      }

      .sub-list-table-row {
        display: table-row;
      }

      .sub-list-table-row .sub-list-table-cell:last-child {
        text-align: right;
      }

      .sub-list-table-cell {
        color: var(--secondary-text-color);
        display: table-cell;
        font-size: 11pt;
        font-weight: 400;
        max-width: 200px;
        padding: 0 4px;
      }

      paper-item {
        padding: 0;
        background: var(--primary-background-color);
      }

      paper-item-body[two-line] {
        min-height: 0;
        padding: 8px 12px 4px;
      }

      .expandedInfo {
        padding: 8px 12px;
      }

      .controlDeps {
        padding: 0 0 0 8px;
      }

      .node-name {
        white-space: normal;
        word-wrap: break-word;
        font-size: 14pt;
        font-weight: 500;
      }

      .node-icon {
        float: right;
      }

      .subtitle {
        color: var(--secondary-text-color);
        font-size: 12pt;
      }

      .op-label {
        display: inline-block;
        max-width: 260px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }

      .controlLine {
        font-size: 11pt;
        font-weight: 400;
      }

      .toggle-button {
        float: right;
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      .control-toggle-button {
        float: left;
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      .toggle-include-group {
        padding-top: 4px;
      }

      .toggle-include {
        margin: 5px 6px;
        text-transform: none;
        padding: 4px 6px;
        font-size: 10pt;
        background-color: #fafafa;
        color: #666;
      }

      .toggle-include:hover {
        background-color: var(--google-yellow-100);
      }

      .non-control-list-item {
        padding-left: 10px;
      }

      #suggestion-content {
        width: 100%;
        padding: 10px;
        font-size: 11pt;
        font-weight: 400;
      }
    </style>
    <paper-item>
      <paper-item-body two-line>
        <div>
          <paper-icon-button icon="{{_getToggleIcon(_expanded)}}" on-click="_toggleExpanded" class="toggle-button">
          </paper-icon-button>
          <div class="node-name">
            <tf-wbr-string value="[[_getNodeName(selectedEdge, _node)]]" delimiter-pattern="/"> </tf-wbr-string>
          </div>
        </div>
        <div secondary>
          <tf-node-icon
            class="node-icon"
            node="[[_node]]"
            render-info="[[_getRenderInfo(selectedNode, renderHierarchy)]]"
            template-index="[[_templateIndex]]"
          ></tf-node-icon>
          <template is="dom-if" if="{{_node.op}}">
            <div class="subtitle">
              <span class="op-label" title="[[_node.op]]">Operation:[[_node.op]]</span>
            </div>
          </template>
          <template is="dom-if" if="{{_node.metagraph}}">
            <div class="subtitle">
              Subgraph:
              <span>[[_node.cardinality]]</span> nodes
            </div>
          </template>
        </div>
      </paper-item-body>
    </paper-item>
    <iron-collapse opened="{{_expanded}}">
      <template is="dom-if" if="{{_expanded}}" restamp="true">
        <div class="expandedInfo">
          <template is="dom-if" if="{{_suggestions}}">
            <paper-icon-button
              icon="{{_getToggleIcon(_suggestExpanded)}}"
              on-click="_toggleSuggestExpanded"
              class="toggle-button"
            >
            </paper-icon-button>
            <div class="sub-list-group">
              Suggestions
              <template is="dom-if" if="{{_suggestExpanded}}">
                <div id="suggestion-content" />
              </template>
            </div>
          </template>

          <paper-icon-button
            icon="{{_getToggleIcon(_attrExpanded)}}"
            on-click="_toggleAttrExpanded"
            class="toggle-button"
          >
          </paper-icon-button>
          <div class="sub-list-group attributes">
            Attributes (<span>[[_attributes.length]]</span>)
            <template is="dom-if" if="{{_attrExpanded}}">
              <iron-list class="sub-list" id="attributesList" items="[[_attributes]]">
                <template>
                  <div class="attr-list-item">
                    <div class="attr-left">[[item.key]]</div>
                    <div class="attr-right">[[item.value]]</div>
                  </div>
                </template>
              </iron-list>
            </template>
          </div>

          <template is="dom-if" if="{{_device}}">
            <div class="sub-list-group device">
              <div class="attr-left">Device</div>
              <div class="attr-right">[[_device]]</div>
            </div>
          </template>

          <paper-icon-button
            icon="{{_getToggleIcon(_inputsExpanded)}}"
            on-click="_toggleInputsExpanded"
            class="toggle-button"
          >
          </paper-icon-button>
          <div class="sub-list-group predecessors">
            Inputs (<span>[[_totalPredecessors]]</span>)
            <template is="dom-if" if="{{_inputsExpanded}}">
              <iron-list class="sub-list" id="inputsList" items="{{_inputsData}}">
                <template>
                  <node-ioinfo-item
                    class="non-control-list-item"
                    name="[[item.key]]"
                    attrs="[[item.value]]"
                    tooltips="[[tooltips]]"
                    on-io-item-toggle="_onInputsDataItemToggled"
                  >
                  </node-ioinfo-item>
                </template>
              </iron-list>
            </template>
            <template is="dom-if" if="[[_predecessors.control.length]]">
              <div class="controlDeps">
                <div class="controlLine">
                  <paper-icon-button
                    icon="{{_getToggleIcon(_openedControlPred)}}"
                    on-click="_toggleControlPred"
                    class="control-toggle-button"
                  >
                  </paper-icon-button>
                  Control dependencies
                </div>
                <iron-collapse opened="{{_openedControlPred}}" no-animation>
                  <template is="dom-if" if="{{_openedControlPred}}" restamp="true">
                    <iron-list class="sub-list" items="[[_predecessors.control]]">
                      <template>
                        <tf-node-list-item
                          card-node="[[_node]]"
                          item-node="[[item.node]]"
                          item-render-info="[[item.renderInfo]]"
                          name="[[item.name]]"
                          item-type="predecessors"
                          template-index="[[_templateIndex]]"
                        >
                        </tf-node-list-item>
                      </template>
                    </iron-list>
                  </template>
                </iron-collapse>
              </div>
            </template>
          </div>

          <paper-icon-button
            icon="{{_getToggleIcon(_outputsExpanded)}}"
            on-click="_toggleOutputsExpanded"
            class="toggle-button"
          >
          </paper-icon-button>
          <div class="sub-list-group successors">
            Outputs (<span>[[_totalSuccessors]]</span>)
            <template is="dom-if" if="{{_outputsExpanded}}">
              <iron-list class="sub-list" id="outputsList" items="{{_outputsData}}">
                <template>
                  <node-ioinfo-item
                    class="non-control-list-item"
                    name="[[item.key]]"
                    attrs="[[item.value]]"
                    tooltips="[[tooltips]]"
                    on-io-item-toggle="_onOutputsDataItemToggled"
                  >
                  </node-ioinfo-item>
                </template>
              </iron-list>
            </template>
            <template is="dom-if" if="[[_successors.control.length]]">
              <div class="controlDeps">
                <div class="controlLine">
                  <paper-icon-button
                    icon="{{_getToggleIcon(_openedControlSucc)}}"
                    on-click="_toggleControlSucc"
                    class="control-toggle-button"
                  >
                  </paper-icon-button>
                  Control dependencies
                </div>
                <iron-collapse opened="{{_openedControlSucc}}" no-animation>
                  <template is="dom-if" if="{{_openedControlSucc}}" restamp="true">
                    <iron-list class="sub-list" items="[[_successors.control]]">
                      <template>
                        <tf-node-list-item
                          card-node="[[_node]]"
                          item-node="[[item.node]]"
                          item-render-info="[[item.renderInfo]]"
                          name="[[item.name]]"
                          item-type="successors"
                          template-index="[[_templateIndex]]"
                        >
                        </tf-node-list-item>
                      </template>
                    </iron-list>
                  </template>
                </iron-collapse>
              </div>
            </template>
          </div>
          <paper-icon-button
            icon="{{_getToggleIcon(_stackExpanded)}}"
            on-click="_toggleStackExpanded"
            class="toggle-button"
          >
          </paper-icon-button>
          <div class="sub-list-group attributes">
            StackInfo (<span>[[_stackData.length]]</span>)
            <template is="dom-if" if="{{_stackExpanded}}">
              <iron-list class="sub-list" id="attributesList" items="[[_stackData]]">
                <template>
                  <div class="attr-list-item">
                    <div class="attr-left1">[[item]]</div>
                  </div>
                </template>
              </iron-list>
            </template>
          </div>
          <template is="dom-if" if="{{_hasDisplayableNodeStats}}">
            <div class="sub-list-group node-stats">
              Node Stats
              <div class="sub-list-table">
                <template is="dom-if" if="{{_nodeStats.totalBytes}}">
                  <div class="sub-list-table-row">
                    <div class="sub-list-table-cell">Memory</div>
                    <div class="sub-list-table-cell">[[_nodeStatsFormattedBytes]]</div>
                  </div>
                </template>
                <template is="dom-if" if="{{_getTotalMicros(_nodeStats)}}">
                  <div class="sub-list-table-row">
                    <div class="sub-list-table-cell">Compute Time</div>
                    <div class="sub-list-table-cell">[[_nodeStatsFormattedComputeTime]]</div>
                  </div>
                </template>
                <template is="dom-if" if="{{_nodeStats.outputSize}}">
                  <div class="sub-list-table-row">
                    <div class="sub-list-table-cell">Tensor Output Sizes</div>
                    <div class="sub-list-table-cell">
                      <template is="dom-repeat" items="{{_nodeStatsFormattedOutputSizes}}"> [[item]] <br /> </template>
                    </div>
                  </div>
                </template>
              </div>
            </div>
          </template>
        </div>
      </template>
    </iron-collapse>
  `,a([h({type:String}),s("design:type",String)],lv.prototype,"selectedNode",void 0),a([h({type:Object}),s("design:type","function"==typeof(iv=sg)?iv:Object)],lv.prototype,"graphHierarchy",void 0),a([h({type:Object}),s("design:type",Object)],lv.prototype,"renderHierarchy",void 0),a([h({type:Object,computed:"_getNode(selectedNode, graphHierarchy)",observer:"_resetState"}),s("design:type",Object)],lv.prototype,"_node",void 0),a([h({type:Object,computed:"_getNodeStats(selectedNode, graphHierarchy)",observer:"_resetState"}),s("design:type",Object)],lv.prototype,"_nodeStats",void 0),a([h({type:Number,observer:"_nodeIncludeStateChanged"}),s("design:type",Number)],lv.prototype,"nodeInclude",void 0),a([h({type:Boolean}),s("design:type",Boolean)],lv.prototype,"_expanded",void 0),a([h({type:Boolean}),s("design:type",Boolean)],lv.prototype,"_suggestExpanded",void 0),a([h({type:Boolean}),s("design:type",Boolean)],lv.prototype,"_attrExpanded",void 0),a([h({type:Boolean}),s("design:type",Boolean)],lv.prototype,"_inputsExpanded",void 0),a([h({type:Boolean}),s("design:type",Boolean)],lv.prototype,"_outputsExpanded",void 0),a([h({type:Boolean}),s("design:type",Boolean)],lv.prototype,"_stackExpanded",void 0),a([h({type:Boolean}),s("design:type",Boolean)],lv.prototype,"_openedControlPred",void 0),a([h({type:Boolean}),s("design:type",Boolean)],lv.prototype,"_openedControlSucc",void 0),a([h({type:String}),s("design:type",String)],lv.prototype,"_auxButtonText",void 0),a([h({type:String}),s("design:type",String)],lv.prototype,"_groupButtonText",void 0),a([h({type:Object}),s("design:type",Function)],lv.prototype,"_templateIndex",void 0),a([h({type:Object}),s("design:type","function"==typeof(rv=i.EdgeData)?rv:Object)],lv.prototype,"selectedEdge",void 0),a([h({type:Object}),s("design:type",Object)],lv.prototype,"tooltips",void 0),a([p("_node"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],lv.prototype,"changeSuggestion",null),a([u("_nodeStats"),s("design:type",Boolean),s("design:paramtypes",[])],lv.prototype,"_hasDisplayableNodeStats",null),a([u("_node"),s("design:type",Object),s("design:paramtypes",[])],lv.prototype,"_suggestions",null),a([u("_nodeStats"),s("design:type",Object),s("design:paramtypes",[])],lv.prototype,"_nodeStatsFormattedBytes",null),a([u("_nodeStats"),s("design:type",Object),s("design:paramtypes",[])],lv.prototype,"_nodeStatsFormattedComputeTime",null),a([u("_nodeStats"),s("design:type",Object),s("design:paramtypes",[])],lv.prototype,"_nodeStatsFormattedOutputSizes",null),a([u("_node","tooltips"),s("design:type","function"==typeof(ov="undefined"!=typeof Array&&Array)?ov:Object),s("design:paramtypes",[])],lv.prototype,"_inputsData",null),a([u("_node","tooltips"),s("design:type","function"==typeof(av="undefined"!=typeof Array&&Array)?av:Object),s("design:paramtypes",[])],lv.prototype,"_outputsData",null),a([u("_node","tooltips"),s("design:type",Object),s("design:paramtypes",[])],lv.prototype,"_stackData",null),a([u("_node","selectedEdge","tooltips"),s("design:type",Array),s("design:paramtypes",[])],lv.prototype,"_attributes",null),a([u("_node"),s("design:type",String),s("design:paramtypes",[])],lv.prototype,"_device",null),a([u("_node","graphHierarchy","selectedEdge"),s("design:type",Object),s("design:paramtypes",[])],lv.prototype,"_successors",null),a([u("_node","graphHierarchy","selectedEdge"),s("design:type",Object),s("design:paramtypes",[])],lv.prototype,"_predecessors",null),a([u("_node"),s("design:type",Array),s("design:paramtypes",[])],lv.prototype,"_subnodes",null),a([u("_node","selectedEdge"),s("design:type",Number),s("design:paramtypes",[])],lv.prototype,"_totalPredecessors",null),a([u("_node","selectedEdge"),s("design:type",Number),s("design:paramtypes",[])],lv.prototype,"_totalSuccessors",null),a([p("graphHierarchy"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],lv.prototype,"_graphHierarchyChanged",null),lv=a([c("tf-node-info")],lv);let hv=class extends(pr(us(Pt))){constructor(){super(...arguments),this.datasets=[],this.matchednodeset=[],this.selectColor=[],this._selectedRunIndex=0,this._selectedBatch=-1,this._selectedStep=-1,this.traceInputs=!1,this.autoExtractNodes=!0,this._selectedTagIndex=0,this._selectedGraphType=Wu.OP_GRAPH,this.selectedNPUNode="",this.selectedBenchNode="",this.selectedMatchedNPUNode="",this.selectedMatchedBenchNode="",this.showSessionRunsDropdown=!0,this.showUploadButton=!1,this._expanded=!0,this._legendOpened=!0,this._Colors=!0,this._downloadFilename="graph.png",this.unmatched=[],this.NPU_unmatched=[],this.Bench_unmatched=[],this.NPU_matched=[],this.Bench_matched=[],this.matched=[],this.matchedlist=[],this.precisionmenu=[],this.selectedSide=0}getMenuNodeName(){return this.nodeName}_showTabContent(e,t){var n,i,r,o;null===(n=this.shadowRoot)||void 0===n||n.querySelectorAll(".tab-button").forEach((e=>{e.classList.remove("active")}));const a=null===(i=this.shadowRoot)||void 0===i?void 0:i.querySelectorAll(".tab-button");null==a||a.forEach((t=>{t.innerHTML===e&&(null==t||t.classList.add("active"))})),null===(r=this.shadowRoot)||void 0===r||r.querySelectorAll(".tab-content").forEach((e=>{e.classList.add("hidden")}));const s=null===(o=this.shadowRoot)||void 0===o?void 0:o.getElementById(t);s&&s.classList.remove("hidden")}_showNodeControls(){this._showTabContent("设置","nodes-content")}_showDirectoryStructure(){this._showTabContent("目录","directory-content")}_showSearchStructure(){this._showTabContent("搜索","search-content")}_showMatch(){this._showTabContent("匹配","match-content")}_onGraphTypeChangedByUserGesture(){sf({actionId:Xu.GRAPH_TYPE_CHANGED,eventLabel:this._selectedGraphType})}_onTraceInputsChangedByUserGesture(){sf({actionId:Xu.TRACE_INPUT_MODE_TOGGLED})}_numTags(e,t){return this._getTags(e,t).length}_getTags(e,t){return e&&e[t]?e[t].tags:[]}_fit(){this.fire("fit-tap")}_observe(){if(0!=this.colorset.length){const e=this.colorset;for(const t of e)0===t[1].value.length&&t[1].value.push("无匹配节点");this.colorSetChanged=e}}_observeUnmatchedNode(){this.NPU_unmatched=this.unmatched[0],this.Bench_unmatched=this.unmatched[1]}_observeMatchedList(){if(this.matchedlist)for(const e of this.matchedlist)this.NPU_matched=[...this.NPU_matched,e[0]],this.Bench_matched=[...this.Bench_matched,e[1]],this.matched=[...this.matched,[e[0],e[1]]]}_observePrecsionNode(e){let t="";this.renderHierarchy.renderedOpNames.some((e=>e.startsWith("B___")))&&(t="N___");const n=t+e.model.item;this.set("selectedNode",n)}_observeNPUUnMatchedNode(e){let t="";this.renderHierarchy.renderedOpNames.some((e=>e.startsWith("B___")))&&(t="N___");const n=t+e.model.item;this.set("selectedNPUNode",n),this.set("selectedNode",n)}_observeBenchUnMatchedNode(e){let t="";this.renderHierarchy.renderedOpNames.some((e=>e.startsWith("B___")))&&(t="B___");const n=t+e.model.item;this.set("selectedBenchNode",n),this.set("selectedNode",n)}_observeNPUMatchedNode(e){let t="";this.renderHierarchy.renderedOpNames.some((e=>e.startsWith("B___")))&&(t="N___");const n=t+e.model.item;this.set("selectedMatchedNPUNode",n),this.set("selectedNode",n)}_observeBenchMatchedNode(e){let t="";this.renderHierarchy.renderedOpNames.some((e=>e.startsWith("B___")))&&(t="B___");const n=t+e.model.item;this.set("selectedMatchedBenchNode",n),this.set("selectedNode",n)}_searchNpu(){this.selectedSide=0}_searchBench(){this.selectedSide=1}_handleMatchedNodesClick(){return l(this,void 0,void 0,(function*(){if(""==this.selectedNPUNode||""==this.selectedBenchNode)return void this.$.unmatchDialog.open();const e=new URLSearchParams,t=this.datasets[this._selectedRunIndex].name,n=this.datasets[this._selectedRunIndex].tags[this._selectedTagIndex].tag;e.set("run",t),n&&e.set("tag",n),e.set("NPU",this.selectedNPUNode),e.set("Bench",this.selectedBenchNode);const i=hs().pluginRouteForSrc("graph_ascend","/match",e),r=yield jm(i),o=(new TextDecoder).decode(r),a={inputshape:this.$.inputshapeDialog,outputshape:this.$.outputshapeDialog,inputNone:this.$.inputNoneDialog,outputNone:this.$.outputNoneDialog}[o];a&&a.open();let s=[];if(s=JSON.parse(o),0!=s.length){this.push("matchednodeset",s),Om(this.matchednodeset),cv(this.matchednodeset);const e=this.NPU_unmatched.indexOf(this.selectedNPUNode.slice(4));-1!==e&&(this.NPU_unmatched=[...this.NPU_unmatched.slice(0,e),...this.NPU_unmatched.slice(e+1)]);const t=this.Bench_unmatched.indexOf(this.selectedBenchNode.slice(4));-1!==t&&(this.Bench_unmatched=[...this.Bench_unmatched.slice(0,t),...this.Bench_unmatched.slice(t+1)]),this.NPU_matched=[...this.NPU_matched,this.selectedNPUNode.slice(4)],this.Bench_matched=[...this.Bench_matched,this.selectedBenchNode.slice(4)],this.matched=[...this.matched,[this.selectedNPUNode.slice(4),this.selectedBenchNode.slice(4)]],this.$.matchDialog.open(),this.selectedNPUNode="",this.selectedBenchNode=""}else this.$.unmatchDialog.open()}))}_handleUnMatchedNodesClick(){return l(this,void 0,void 0,(function*(){if(""==this.selectedMatchedNPUNode||""==this.selectedMatchedBenchNode)return void this.$.uncancelDialog.open();if(!this.matched.some((([e,t])=>e===this.selectedMatchedNPUNode.slice(4)&&t===this.selectedMatchedBenchNode.slice(4))))return void this.$.uncancelDialog.open();this.NPU_unmatched.push(this.selectedMatchedNPUNode.slice(4)),this.NPU_unmatched=[...this.NPU_unmatched],this.Bench_unmatched.push(this.selectedMatchedBenchNode.slice(4)),this.Bench_unmatched=[...this.Bench_unmatched];const e=this.NPU_matched.indexOf(this.selectedMatchedNPUNode.slice(4));-1!==e&&(this.NPU_matched=[...this.NPU_matched.slice(0,e),...this.NPU_matched.slice(e+1)]),-1!==this.Bench_matched.indexOf(this.selectedMatchedBenchNode.slice(4))&&(this.Bench_matched=[...this.Bench_matched.slice(0,e),...this.Bench_matched.slice(e+1)]),-1!==this.matched.findIndex((e=>e[0]===this.selectedMatchedNPUNode.slice(4)&&e[1]===this.selectedMatchedBenchNode.slice(4)))&&(this.matched=[...this.matched.slice(0,e),...this.matched.slice(e+1)]),-1!==this.matchednodeset.findIndex((e=>e[0]===this.selectedMatchedNPUNode))&&(this.matchednodeset=[...this.matchednodeset.slice(0,e),...this.matchednodeset.slice(e+1)]);const t=new URLSearchParams,n=this.datasets[this._selectedRunIndex].name,i=this.datasets[this._selectedRunIndex].tags[this._selectedTagIndex].tag;t.set("run",n),i&&t.set("tag",i),t.set("NPU",this.selectedMatchedNPUNode),t.set("Bench",this.selectedMatchedBenchNode);const r=hs().pluginRouteForSrc("graph_ascend","/unmatch",t),o=yield jm(r);(new TextDecoder).decode(o),Om(this.matchednodeset),cv(this.matchednodeset),this.$.cancelDialog.open()}))}_clearAllToggleCheckbox(){var e;this._searchNpu(),this.$.dropdown.selected=0;const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelectorAll("paper-checkbox");t&&t.forEach((e=>{e.checked=!1})),this.selectColor=[],this.precisionmenu=[]}_toggleCheckbox(e){return l(this,void 0,void 0,(function*(){var t;const{batch:n,step:i}=this.selection,r=e.model.item,o=null===(t=this.shadowRoot)||void 0===t?void 0:t.getElementById(`checkbox-${e.model.index}`),a=this.datasets[this._selectedRunIndex].tags[this._selectedTagIndex].run,s=this.datasets[this._selectedRunIndex].tags[this._selectedTagIndex].tag;if(this.precisionmenu=[],o&&o.checked)this.selectColor.push(r[1].value);else{const e=this.selectColor.findIndex((e=>e[0]===r[1].value[0]&&e[1]===r[1].value[1]));-1!==e&&this.selectColor.splice(e,1)}if(0==this.selectColor.length)return void(this.precisionmenu=[]);const l=new URLSearchParams;l.set("precison",this.selectColor.join(",")),a&&l.set("run",a),s&&l.set("tag",s),l.set("batch",String(-1===n?-1:n-1)),l.set("step",String(-1===i?-1:i-1));const c=hs().pluginRouteForSrc("graph_ascend","/precision",l);try{const e=jm(c);this.precisionmenu=JSON.parse((new TextDecoder).decode(yield e).replace(/'/g,'"'))}catch(e){console.error("Parse tooltips failed, please check the format of tooltips in the input vis file")}this.notifyPath(`menu.${e.model.index}.checked`,o.checked)}))}download(){this.fire("download-image-requested",this._downloadFilename)}computedLength(){return this.microsteps.length>0?this.microsteps.length-1:0}_updateFileInput(e){var t;const n=null===(t=e.target.files)||void 0===t?void 0:t[0];if(!n)return;let i=n.name;const r=i.lastIndexOf(".");r>=0&&(i=i.substring(0,r));const o=i.lastIndexOf("/");o>=0&&(i=i.substring(o+1)),this._setDownloadFilename(i),this.set("selectedFile",e),sf({actionId:Xu.UPLOADED_GRAPH_FROM_FILESYSTEM})}_datasetsChanged(e,t){var n;null!=t&&(this._selectedRunIndex=0),this._setDownloadFilename(null===(n=this.datasets[this._selectedRunIndex])||void 0===n?void 0:n.name)}_computeSelection(e,t,n,i,r,o){return e[t]&&e[t].tags[n]?{run:e[t].name,tag:e[t].tags[n].tag,type:i,batch:r,step:o}:null}_selectedRunIndexChanged(e){var t;this.datasets&&(this._selectedTagIndex=0,this._selectedGraphType=this._getDefaultSelectionType(),this.traceInputs=!1,this._setDownloadFilename(null===(t=this.datasets[e])||void 0===t?void 0:t.name))}_selectedTagIndexChanged(){this._selectedGraphType=this._getDefaultSelectionType()}_getDefaultSelectionType(){const{datasets:e,_selectedRunIndex:t,_selectedTagIndex:n}=this;if(!e||!e[t]||!e[t].tags[n]||e[t].tags[n].opGraph)return Wu.OP_GRAPH;const i=e[t];return i.tags[n].profile?Wu.PROFILE:i.tags[n].conceptualGraph?Wu.CONCEPTUAL_GRAPH:Wu.OP_GRAPH}_getFile(){this.$$("#file").click()}_setDownloadFilename(e){this._downloadFilename=(e||"graph")+".png"}_statsNotNull(e){return null!==e}_toggleLegendOpen(){this.set("_legendOpened",!this._legendOpened)}_toggleColorsOpen(){this.set("_Colors",!this._Colors)}_getToggleLegendIcon(e){return e?"expand-more":"expand-less"}_getSelectionOpGraphDisabled(e,t,n){return!e[t]||!e[t].tags[n]||!e[t].tags[n].opGraph}_getSelectionProfileDisabled(e,t,n){return!e[t]||!e[t].tags[n]||!e[t].tags[n].profile}_getSelectionConceptualGraphDisabled(e,t,n){return!e[t]||!e[t].tags[n]||!e[t].tags[n].conceptualGraph}_getToggleIcon(e){return e?"expand-less":"expand-more"}_toggleExpanded(){this._expanded=!this._expanded}triggerMenuExpandEvent(e){var t;const n=null===(t=this.shadowRoot)||void 0===t?void 0:t.getElementById(e);if(null==n?void 0:n.open){const t=new CustomEvent("menu-expand-node-changed",{detail:{name:e,open:"unexpand"}});document.dispatchEvent(t)}else{const t=new CustomEvent("menu-expand-node-changed",{detail:{name:e,open:"expand"}});document.dispatchEvent(t)}}_getdata(e){const{batch:t,step:n}=this.selection;var i=e.currentTarget.getAttribute("id");"root"!=i&&this.triggerMenuExpandEvent(i);const r=this.datasets[this._selectedRunIndex].name,o=this.datasets[this._selectedRunIndex].tags[this._selectedTagIndex].tag,a=new URLSearchParams;a.set("run",r),o&&a.set("tag",o),a.set("node",i),a.set("batch",String(-1===t?-1:t-1)),a.set("step",String(-1===n?-1:n-1)),jm(hs().pluginRouteForSrc("graph_ascend","/subgraph",a)).then((e=>{qm(e).then((e=>(this.updateGraphData(e,i),e)))}))}_newMenu(){var e;let t;t=null===(e=this.shadowRoot)||void 0===e?void 0:e.getElementById("menubox"),t.innerHTML="";const n=document.createElement("summary"),i=document.createElement("details");n.id="root",n.textContent="目录",n.addEventListener("click",this._getdata.bind(this)),i.appendChild(n),null==t||t.appendChild(i)}_updateColorItems(){var e;const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.getElementById("coloritems"),n=null==t?void 0:t.querySelector("tbody");0!=Object.entries(this.colors).length?n&&(n.innerHTML="",Object.entries(this.colors).forEach((([e,t])=>{let i=[];if(i=[t],i){const t=document.createElement("tr"),r=document.createElement("td"),o=document.createElement("div");o.className="rectangle",o.style.backgroundColor=e;const a=document.createElement("td"),s=document.createElement("td"),l=document.createElement("div"),c=document.createElement("span"),d=document.createElement("paper-tooltip"),h=document.createElement("div");l.className="legend-clarifier",c.textContent="?",d.setAttribute("animation-delay","0"),d.setAttribute("position","right"),d.setAttribute("offset","0"),h.className="custom-tooltip",h.textContent=i[0].description,null!=i[0].value[0]?a.textContent=i[0].value[0]+"-"+i[0].value[1]:a.textContent="无匹配节点",n.appendChild(t),t.appendChild(r),r.appendChild(o),t.appendChild(a),t.appendChild(s),s.appendChild(l),l.appendChild(c),l.appendChild(d),d.appendChild(h)}}))):(n&&(n.innerHTML="",[{color:"#FFFCF3",text:"1-0.8"},{color:"#FFEDBE",text:"0.8-0.6"},{color:"#FFDC7F",text:"0.6-0.4"},{color:"#FFC62E",text:"0.4-0.2"},{color:"#ff704d",text:"0.2-0"},{color:"#C7C7C7",text:"Not Connected"}].forEach((({color:e,text:t})=>{const i=document.createElement("tr");i.innerHTML=`<td><div class="rectangle" style="background-color: ${e};"></div></td><td>${t}</td>`,n.appendChild(i)}))),this.colorset=[["#FFFCF3",{description:"此节点所有输入输出的统计量相对误差，值越大代表测量值与标杆值的偏差越大，相对误差计算方式：|(测量值-标杆值)/标杆值|",value:[.8,1]}],["#FFEDBE",{description:"此节点所有输入输出的统计量相对误差，值越大代表测量值与标杆值的偏差越大，相对误差计算方式：|(测量值-标杆值)/标杆值|",value:[.6,.8]}],["#FFDC7F",{description:"此节点所有输入输出的统计量相对误差，值越大代表测量值与标杆值的偏差越大，相对误差计算方式：|(测量值-标杆值)/标杆值|",value:[.4,.6]}],["#FFC62E",{description:"此节点所有输入输出的统计量相对误差，值越大代表测量值与标杆值的偏差越大，相对误差计算方式：|(测量值-标杆值)/标杆值|",value:[.2,.4]}],["#ff704d",{description:"此节点所有输入输出的统计量相对误差，值越大代表测量值与标杆值的偏差越大，相对误差计算方式：|(测量值-标杆值)/标杆值|",value:[0,.2]}],["#C7C7C7",{description:"对比过程中节点未匹配上",value:[]}]])}updateGraphData(e,t){var n,i;let r,o;this.graphDef=e,"root"==t?(r=null===(n=this.shadowRoot)||void 0===n?void 0:n.getElementById("menubox"),o=null==r?void 0:r.querySelector("details")):o=null===(i=this.shadowRoot)||void 0===i?void 0:i.getElementById(t),this.graphDef.node.forEach((e=>{var n;const i=document.createElement("details"),r=document.createElement("summary");let a;if(i.id=e.name,r.id=e.name,!(null===(n=this.shadowRoot)||void 0===n?void 0:n.getElementById(e.name))){a="root"==t&&"N___"==e.name.substring(0,4)?e.name.substring(4)+"(对比)":"root"==t&&"B___"==e.name.substring(0,4)?e.name.substring(4)+"(标杆)":"B___"==e.name.substring(0,4)||"N___"==e.name.substring(0,4)?e.name.substring(4):e.name,e.isLeaf?(r.classList.add("no-arrow"),i.style.paddingLeft="22px"):r.classList.remove("no-arrow"),r.style.backgroundColor="white",0==Object.keys(this.colors).length&&(this.colors={"#FFFCF3":{value:[.8,1],description:"此节点所有输入输出的统计量相对误差，值越大代表测量值与标杆值的偏差越大，相对误差计算方式：|(测量值-标杆值)/标杆值|"},"#FFEDBE":{value:[.6,.8],description:"此节点所有输入输出的统计量相对误差，值越大代表测量值与标杆值的偏差越大，相对误差计算方式：|(测量值-标杆值)/标杆值|"},"#FFDC7F":{value:[.4,.6],description:"此节点所有输入输出的统计量相对误差，值越大代表测量值与标杆值的偏差越大，相对误差计算方式：|(测量值-标杆值)/标杆值|"},"#FFC62E":{value:[.2,.4],description:"此节点所有输入输出的统计量相对误差，值越大代表测量值与标杆值的偏差越大，相对误差计算方式：|(测量值-标杆值)/标杆值|"},"#ff704d":{value:[0,.2],description:"此节点所有输入输出的统计量相对误差，值越大代表测量值与标杆值的偏差越大，相对误差计算方式：|(测量值-标杆值)/标杆值|"},"#C7C7C7":{value:[],description:"对比过程中节点未匹配上"}});for(const[t,n]of Object.entries(this.colors)){let i=[];i=[n];const[o,a]=i[0].value;if(o==a&&e.precision_index==o||e.precision_index>=o&&e.precision_index<a||e.precision_index==a&&1==a){r.style.backgroundColor=t;break}r.style.backgroundColor="#C7C7C7"}r.textContent=a,r.addEventListener("click",this._getdata.bind(this)),i.appendChild(r),null==o||o.appendChild(i)}}))}};var pv,uv,fv,gv,mv,vv;hv.template=Ot`
    <style>
      :host {
        color: #555;
        display: flex;
        flex-direction: column;
        font-size: 12px;
        width: 100%;
        --tb-graph-controls-title-color: #000;
        --tb-graph-controls-legend-text-color: #000;
        --tb-graph-controls-text-color: #555;
        --tb-graph-controls-title-font-size: 14px;
        --tb-graph-controls-subtitle-font-size: 14px;
        --paper-input-container-shared-input-style_-_font-size: 14px;
        --paper-font-subhead_-_font-size: 14px;
      }

      :host(.dark-mode) {
        --tb-graph-controls-title-color: #fff;
        --tb-graph-controls-legend-text-color: #f3f3f3;
        --tb-graph-controls-text-color: #eee;
      }

      paper-dropdown-menu {
        --paper-dropdown-menu-input: {
          padding: 0;
          color: gray;
        }
        --iron-icon-width: 15px;
        --iron-icon-height: 15px;
        --primary-text-color: gray;
        --paper-item-min-height: 30px;
      }

      paper-button[raised].keyboard-focus {
        font-weight: normal;
      }

      .run-dropdown {
        --paper-input-container: {
          padding: 5px 0 5px 5px;
        }
      }

      table {
        border-collapse: collapse;
        border-spacing: 0;
      }

      table tr {
        height: 20px;
      }

      table td {
        padding: 0;
        margin: 10px;
      }

      .allcontrols {
        padding: 0 20px 20px;
        flex-grow: 1;
        overflow-y: auto;
      }

      .holder {
        background: var(--secondary-background-color);
        box-sizing: border-box;
        color: var(--tb-graph-controls-text-color);
        width: 100%;
      }

      .legend-toolbar {
        appearance: none;
        background-color: inherit;
        border-top: 1px solid #ccc;
        border-bottom: 1px solid #ccc;
        border-right: none;
        border-left: none;
        cursor: pointer;
        color: var(--tb-graph-controls-legend-text-color);
        font: inherit;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        outline: none;
      }

      .legend-toolbar,
      .legend-content {
        padding: 8px 20px;
      }

      .toggle-legend-button {
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      .toggle-legend-text {
        font-size: var(--tb-graph-controls-subtitle-font-size);
      }

      paper-radio-button {
        display: block;
        padding: 5px;
      }

      .rectangle {
        width: 40px;
        height: 18px;
        display: inline-block;
        border-radius: 1px;
        margin-right: 10px;
      }

      .-rectangle {
        width: 35px;
        height: 16px;
        background-color: red;
        display: inline-block;
      }

      svg.icon,
      tf-graph-icon {
        width: 60px;
        height: 18px;
      }
      .domainValues {
        margin-bottom: 10px;
        width: 165px;
      }
      .domainStart {
        float: left;
      }
      .domainEnd {
        float: right;
      }
      .colorBox {
        width: 20px;
      }

      .image-icon {
        width: 24px;
        height: 24px;
      }

      .help-icon {
        height: 15px;
        margin: 0;
        padding: 0;
      }

      .gray {
        color: #666;
      }

      .title {
        font-size: var(--tb-graph-controls-title-font-size);
        margin: 8px 5px 8px 0;
        color: var(--tb-graph-controls-title-color);
      }
      .title small {
        font-weight: normal;
      }

      #file {
        padding: 8px 0;
      }

      .color-legend-row {
        align-items: center;
        clear: both;
        display: flex;
        height: 20px;
        margin-top: 5px;
      }

      .color-legend-row .label,
      .color-legend-row svg,
      .color-legend-row tf-graph-icon {
        flex: 0 0 40px;
        margin-right: 20px;
      }

      .control-holder .icon-button {
        font-size: var(--tb-graph-controls-subtitle-font-size);
        margin: 0 -5px;
        padding: 5px;
        display: flex;
        justify-content: flex-start;
        color: var(--tb-graph-controls-text-color);
      }

      .button-text {
        padding-left: 20px;
        text-transform: none;
      }

      .upload-button {
        width: 165px;
        height: 25px;
        text-transform: none;
        margin-top: 4px;
      }

      .button-icon {
        width: 26px;
        height: 26px;
        color: var(--paper-orange-500);
      }

      .hidden-input {
        display: none;
      }

      .allcontrols .control-holder {
        clear: both;
        display: flex;
        justify-content: space-between;
      }

      .allcontrols .control-holder.control-options {
        padding: 0 0 15px 15px;
        flex-direction: column;
      }

      .allcontrols .control-holder paper-toggle-button {
        margin-bottom: 5px;
      }

      span.counter {
        font-size: var(--tb-graph-controls-subtitle-font-size);
        color: gray;
        margin-left: 4px;
      }

      .runs-row .title,
      .tags-row .title {
        display: flex;
        align-items: baseline;
      }

      .runs-row paper-item,
      .tags-row paper-item {
        --paper-item: {
          white-space: nowrap;
        }
      }

      table.control-holder {
        border: 0;
        border-collapse: collapse;
      }

      table.tf-graph-controls td.input-element-table-data {
        padding: 0 0 0 20px;
      }

      .spacer {
        flex-grow: 1;
      }

      .color-text {
        overflow: hidden;
      }

      .color-text.gradient-container {
        margin: 0 5px;
      }

      /** Override inline styles that suppress pointer events for disabled buttons. Otherwise, the */
      /*  tooltips do not appear. */
      paper-radio-group paper-radio-button {
        pointer-events: auto !important;
      }

      .legend-clarifier {
        color: #266236;
        cursor: help;
        display: inline-block;
        text-decoration: underline;
      }

      .legend-clarifier paper-tooltip {
        width: 150px;
      }

      .custom-tooltip {
        font-size: 12px;
      }

      /** Otherwise, polymer UI controls appear atop node search. */
      tf-graph-node-search {
        z-index: 1;
        width: 100%;
      }

      paper-dropdown-menu {
        flex-grow: 1;
      }

      .tabs {
        display: flex;
        border-bottom: 1px solid #ccc;
      }

      .tab-button {
        flex: 1;
        padding: 10px;
        background: #f1f1f1;
        border: none;
        cursor: pointer;
        border-bottom: 3px solid transparent; /* 初始状态下的底部线条透明 */
      }

      .tab-button.active {
        background: #fff;
        border-bottom: 3px solid orange; /* 聚焦时显示橙色线条 */
      }

      .tab-content {
        background: #fffcf3;
        padding-left: 20px;
        flex-grow: 1;
        overflow-y: auto;
      }

      .hidden {
        display: none;
      }

      .toggle-button {
        float: right;
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      .control-toggle-button {
        float: left;
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      details {
        background: #fffcf3;
        margin: 0;
        padding: 0;
      }

      details > details {
        padding-left: 5px;
      }

      details > details > * {
        margin: 0;
      }

      details > details > details {
        padding-left: 10px; /* 每层嵌套增加 5px*/
      }

      summary {
        display: flex;
        align-items: center;
        cursor: pointer;
        background: #fffcf3;
        white-space: nowrap; /* 防止内容换行 */
      }

      .no-arrow::before {
        content: none; // 不显示三角形
      }

      summary::before {
        content: '';
        display: inline-block;
        width: 0;
        height: 0;
        border-left: 4px solid black;
        border-right: 4px solid transparent;
        border-top: 4px solid transparent;
        border-bottom: 4px solid transparent;
        margin-right: 5px;
      }

      details[open] > summary::before {
        border-left: 4px solid transparent;
        border-right: 4px solid transparent;
        border-top: 4px solid black;
        border-bottom: 0;
        margin-right: 5px;
      }

      details > details > summary::before {
        border-left: 4px solid black;
        border-right: 4px solid transparent;
        border-top: 4px solid transparent;
        border-bottom: 4px solid transparent;
        margin-right: 5px;
      }

      details > details[open] > summary::before {
        border-left: 4px solid transparent;
        border-right: 4px solid transparent;
        border-top: 4px solid black;
        border-bottom: 0;
        margin-right: 5px;
      }

      details > details > details > summary::before {
        border-left: 4px solid black;
        border-right: 4px solid transparent;
        border-top: 4px solid transparent;
        border-bottom: 4px solid transparent;
        margin-right: 5px;
      }

      details > details > details[open] > summary::before {
        border-left: 4px solid transparent;
        border-right: 4px solid transparent;
        border-top: 4px solid black;
        border-bottom: 0;
        margin-right: 5px;
      }

      paper-checkbox {
        --paper-checkbox-unchecked-color: gray; /* 选中时的颜色 */
      }
    </style>

    <div class="tabs">
      <button class="tab-button" on-tap="_showNodeControls">设置</button>
      <button class="tab-button" on-tap="_showDirectoryStructure">目录</button>
      <button class="tab-button" on-tap="_showSearchStructure">搜索</button>
      <button class="tab-button" on-tap="_showMatch">匹配</button>
    </div>
    <div id="nodes-content" class="tab-content">
      <div class="allcontrols">
        <div class="control-holder">
          <paper-button class="icon-button" on-tap="_fit" alt="Fit to screen">
            <iron-icon icon="aspect-ratio" class="button-icon"></iron-icon>
            <span class="button-text">Fit to screen</span>
          </paper-button>
        </div>
        <div class="control-holder">
          <paper-button class="icon-button" on-click="download" alt="Download PNG">
            <iron-icon icon="file-download" class="button-icon"></iron-icon>
            <span class="button-text">Download PNG</span>
          </paper-button>
        </div>
        <template is="dom-if" if="[[showUploadButton]]">
          <div class="control-holder">
            <paper-button
              class="icon-button"
              on-click="_getFile"
              alt="Upload file"
              title="Upload a pbtxt file to view a graph from the local filesystem"
            >
              <iron-icon icon="file-upload" class="button-icon"></iron-icon>
              <span class="button-text">Upload file</span>
            </paper-button>

            <div class="hidden-input">
              <input type="file" id="file" name="file" on-change="_updateFileInput" accept=".pbtxt" />
            </div>
          </div>
        </template>
        <div class="control-holder runs-row">
          <div class="title">Run <span class="counter">([[datasets.length]])</span></div>
          <paper-dropdown-menu no-label-float no-animations noink horizontal-align="left" class="run-dropdown">
            <paper-listbox class="dropdown-content" selected="{{_selectedRunIndex}}" slot="dropdown-content">
              <template is="dom-repeat" items="[[datasets]]">
                <paper-item>[[item.name]]</paper-item>
              </template>
            </paper-listbox>
          </paper-dropdown-menu>
        </div>
        <template is="dom-if" if="[[showSessionRunsDropdown]]">
          <div class="control-holder tags-row">
            <div class="title">
              Tag
              <span class="counter">([[_numTags(datasets, _selectedRunIndex)]])</span>
            </div>
            <paper-dropdown-menu no-label-float no-animations horizontal-align="left" noink class="run-dropdown">
              <paper-listbox class="dropdown-content" selected="{{_selectedTagIndex}}" slot="dropdown-content">
                <template is="dom-repeat" items="[[_getTags(datasets, _selectedRunIndex)]]">
                  <paper-item>[[item.displayName]]</paper-item>
                </template>
              </paper-listbox>
            </paper-dropdown-menu>
          </div>
        </template>
        <div class="control-holder runs-row">
          <template is="dom-if" if="{{steplist.length}}">
            <div class="title">Step <span class="counter">([[steplist.length]])</span></div>
            <paper-dropdown-menu no-label-float no-animations noink horizontal-align="left" class="run-dropdown">
              <paper-listbox class="dropdown-content" selected="{{_selectedStep}}" slot="dropdown-content">
                <template is="dom-repeat" items="[[steplist]]">
                  <paper-item>[[item]]</paper-item>
                </template>
              </paper-listbox>
            </paper-dropdown-menu>
          </template>

          <template is="dom-if" if="{{microsteps.length}}">
            <div class="title">MicroStep <span class="counter">([[computedLength()]])</span></div>
            <paper-dropdown-menu no-label-float no-animations noink horizontal-align="left" class="run-dropdown">
              <paper-listbox class="dropdown-content" selected="{{_selectedBatch}}" slot="dropdown-content">
                <template is="dom-repeat" items="[[microsteps]]">
                  <paper-item>[[item]]</paper-item>
                </template>
              </paper-listbox>
            </paper-dropdown-menu>
          </template>
        </div>

        <div class="title">Node options</div>
        <div class="control-holder control-options">
          <paper-toggle-button checked="{{traceInputs}}" on-change="_onTraceInputsChangedByUserGesture">
            Trace inputs
          </paper-toggle-button>
          <paper-toggle-button checked="{{autoExtractNodes}}"> Auto-extract high-degree nodes </paper-toggle-button>
        </div>
        <template is="dom-if" if="[[healthPillsFeatureEnabled]]">
          <div class="control-holder">
            <paper-toggle-button checked="{{healthPillsToggledOn}}">Show health pills</paper-toggle-button>
          </div>
        </template>
      </div>
    </div>
    <div id="directory-content" class="tab-content hidden">
      <div id="menubox" style="padding-top: 10px">
        <details>
          <summary id="root" on-click="_getdata">目录</summary>
        </details>
      </div>
    </div>
    <div id="search-content" class="tab-content hidden">
      <div class="control-holder" style="display: flex; align-items: center;">
        <tf-graph-node-search
          selected-node="{{selectedNode}}"
          expand-node="{{expandNode}}"
          render-hierarchy="[[renderHierarchy]]"
          menu="[[menu]]"
          selected-side="{{selectedSide}}"
        ></tf-graph-node-search>
        <paper-dropdown-menu id="searchOption" label="请选择" style="margin-left: 20px; width: 75px;">
          <paper-listbox slot="dropdown-content" id="dropdown">
            <paper-item value="NPU" on-click="_searchNpu">NPU</paper-item>
            <paper-item value="标杆" on-click="_searchBench">Bench</paper-item>
          </paper-listbox>
        </paper-dropdown-menu>
      </div>
      <template is="dom-if" if="{{colorSetChanged.length}}">
        <div class="container" style="display: flex; flex-direction: column;">
          <div class="title">精度筛选 <span class="counter">([[colorSetChanged.length]])</span></div>
          <div class="run-dropdown" style="margin-top: 8px; display: flex; flex-direction: column;">
            <template is="dom-repeat" items="[[colorSetChanged]]">
              <div class="color-option" style="display: flex; align-items: center;">
                <paper-checkbox id="checkbox-[[index]]" on-click="_toggleCheckbox"></paper-checkbox>
                <div
                  style="width: 12px; height: 12px; background-color: [[item.0]]; margin-right: 8px; border: 1px solid gray;"
                ></div>
                [[item.1.value]]
              </div>
            </template>
          </div>
        </div>
      </template>
      <template is="dom-if" if="{{precisionmenu || precisionmenu === ''}}">
        <div class="container" style="display: flex; align-items: center;">
          <div class="title">按精度筛选 <span class="counter">([[precisionmenu.length]])</span></div>
          <paper-dropdown-menu no-label-float no-animations noink horizontal-align="left" class="run-dropdown">
            <paper-listbox class="dropdown-content" slot="dropdown-content">
              <template is="dom-repeat" items="[[precisionmenu]]">
                <paper-item on-click="_observePrecsionNode">[[item]]</paper-item>
              </template>
            </paper-listbox>
          </paper-dropdown-menu>
        </div>
      </template>
      <div>搜索说明：</div>
      <div>第一次点击展开到指定节点所在的层级</div>
      <div>第二次点击跳转至指定节点</div>
    </div>
    <div id="match-content" class="tab-content hidden">
      <div class="title">未匹配节点:</div>
      <template is="dom-if" if="{{NPU_unmatched || NPU_unmatched === ''}}">
        <div class="container" style="display: flex; align-items: center;">
          <div class="title">NPU <span class="counter">([[NPU_unmatched.length]])</span></div>
          <paper-dropdown-menu no-label-float no-animations noink horizontal-align="left" class="run-dropdown">
            <paper-listbox class="dropdown-content" slot="dropdown-content">
              <template is="dom-repeat" items="[[NPU_unmatched]]">
                <paper-item on-click="_observeNPUUnMatchedNode">[[item]]</paper-item>
              </template>
            </paper-listbox>
          </paper-dropdown-menu>
        </div>
      </template>
      <template is="dom-if" if="{{Bench_unmatched || Bench_unmatched === ''}}">
        <div class="container" style="display: flex; align-items: center;">
          <div class="title">标杆 <span class="counter">([[Bench_unmatched.length]])</span></div>
          <paper-dropdown-menu no-label-float no-animations noink horizontal-align="left" class="run-dropdown">
            <paper-listbox class="dropdown-content" slot="dropdown-content">
              <template is="dom-repeat" items="[[Bench_unmatched]]">
                <paper-item on-click="_observeBenchUnMatchedNode">[[item]]</paper-item>
              </template>
            </paper-listbox>
          </paper-dropdown-menu>
        </div>
      </template>
      <div><button on-click="_handleMatchedNodesClick">匹配节点</button></div>
      <div class="title" style="padding-top: 30px">已匹配节点:</div>
      <template is="dom-if" if="{{matched || matched === ''}}">
        <div class="container" style="display: flex; align-items: center;">
          <div class="title">匹配列表 <span class="counter">([[matched.length]])</span></div>
          <paper-dropdown-menu no-label-float no-animations noink horizontal-align="left" class="run-dropdown">
            <paper-listbox class="dropdown-content" slot="dropdown-content">
              <template is="dom-repeat" items="[[matched]]">
                <paper-item>[[item]]</paper-item>
              </template>
            </paper-listbox>
          </paper-dropdown-menu>
        </div>
      </template>
      <template is="dom-if" if="{{NPU_matched || NPU_matched === ''}}">
        <div class="container" style="display: flex; align-items: center;">
          <div class="title">NPU <span class="counter">([[NPU_matched.length]])</span></div>
          <paper-dropdown-menu no-label-float no-animations noink horizontal-align="left" class="run-dropdown">
            <paper-listbox class="dropdown-content" slot="dropdown-content">
              <template is="dom-repeat" items="[[NPU_matched]]">
                <paper-item on-click="_observeNPUMatchedNode">[[item]]</paper-item>
              </template>
            </paper-listbox>
          </paper-dropdown-menu>
        </div>
      </template>
      <template is="dom-if" if="{{Bench_matched || Bench_matched === ''}}">
        <div class="container" style="display: flex; align-items: center;">
          <div class="title">标杆 <span class="counter">([[Bench_matched.length]])</span></div>
          <paper-dropdown-menu no-label-float no-animations noink horizontal-align="left" class="run-dropdown">
            <paper-listbox class="dropdown-content" slot="dropdown-content">
              <template is="dom-repeat" items="[[Bench_matched]]">
                <paper-item on-click="_observeBenchMatchedNode">[[item]]</paper-item>
              </template>
            </paper-listbox>
          </paper-dropdown-menu>
        </div>
      </template>
      <div><button on-click="_handleUnMatchedNodesClick">取消匹配</button></div>
      <paper-dialog id="unmatchDialog">
        <h2>提示</h2>
        <div>节点不可匹配</div>
        <div class="buttons">
          <paper-button dialog-dismiss>关闭</paper-button>
        </div>
      </paper-dialog>
      <paper-dialog id="matchDialog">
        <h2>提示</h2>
        <div>节点匹配成功</div>
        <div class="buttons">
          <paper-button dialog-dismiss>关闭</paper-button>
        </div>
      </paper-dialog>
      <paper-dialog id="cancelDialog">
        <h2>提示</h2>
        <div>已取消匹配</div>
        <div class="buttons">
          <paper-button dialog-dismiss>关闭</paper-button>
        </div>
      </paper-dialog>
      <paper-dialog id="uncancelDialog">
        <h2>提示</h2>
        <div>取消匹配失败，请核对选择节点</div>
        <div class="buttons">
          <paper-button dialog-dismiss>关闭</paper-button>
        </div>
      </paper-dialog>
      <paper-dialog id="inputshapeDialog">
        <h2>提示</h2>
        <div>匹配失败，inputshape不匹配</div>
        <div class="buttons">
          <paper-button dialog-dismiss>关闭</paper-button>
        </div>
      </paper-dialog>
      <paper-dialog id="outputshapeDialog">
        <h2>提示</h2>
        <div>匹配失败，outputshape不匹配</div>
        <div class="buttons">
          <paper-button dialog-dismiss>关闭</paper-button>
        </div>
      </paper-dialog>
      <paper-dialog id="inputNoneDialog">
        <h2>提示</h2>
        <div>匹配失败，input中包含None值</div>
        <div class="buttons">
          <paper-button dialog-dismiss>关闭</paper-button>
        </div>
      </paper-dialog>
      <paper-dialog id="outputNoneDialog">
        <h2>提示</h2>
        <div>匹配失败，output中包含None值</div>
        <div class="buttons">
          <paper-button dialog-dismiss>关闭</paper-button>
        </div>
      </paper-dialog>
    </div>
    <div class="holder">
      <button class="legend-toolbar" on-click="_toggleLegendOpen">
        <span class="toggle-legend-text">Legend</span>
        <iron-icon icon="[[_getToggleLegendIcon(_legendOpened)]]" class="toggle-legend-button"> </iron-icon>
      </button>
      <iron-collapse opened="[[_legendOpened]]" class="legend-content">
        <!-- Color-mode-specific legend items -->
        <div class="color-text">
          <div class="color-legend-row">
            <tf-graph-icon type="META" height="16" fill-override="#eee" stroke-override="#a6a6a6"></tf-graph-icon>
            <span class="color-legend-value">Module or Operators</span>
          </div>
        </div>

        <!-- Common legend items -->
        <div>
          <table>
            <tbody>
              <tr>
                <td>
                  <tf-graph-icon type="OP" height="16"></tf-graph-icon>
                </td>
                <td>
                  Unexpanded Module or Operators
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip animation-delay="0" position="right" offset="0">
                      <div class="custom-tooltip">
                        Unexpandable Node: It can be an Api, operator or module. It cannot be expanded because it has no
                        subnodes
                      </div>
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <tf-graph-icon type="API_LIST" height="16"></tf-graph-icon>
                </td>
                <td>
                  Api List
                  <div class="legend-clarifier">
                    <span>?</span>
                    <paper-tooltip animation-delay="0" position="right" offset="0">
                      <div class="custom-tooltip">Apis between modules</div>
                    </paper-tooltip>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <svg class="icon"></svg>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </iron-collapse>
    </div>
    <div class="holder">
      <button class="legend-toolbar" on-click="_toggleColorsOpen">
        <span class="toggle-legend-text">Colors</span>
        <iron-icon icon="[[_getToggleLegendIcon(_Colors)]]" class="toggle-legend-button"> </iron-icon>
      </button>
      <iron-collapse opened="[[_Colors]]" class="legend-content">
        <!-- Common legend items -->
        <div>
          <table id="coloritems">
            <tbody></tbody>
          </table>
        </div>
      </iron-collapse>
    </div>
  `,a([h({type:Array,observer:"_datasetsChanged"}),s("design:type",Object)],hv.prototype,"datasets",void 0),a([h({type:Object}),s("design:type",Object)],hv.prototype,"colorset",void 0),a([h({type:Object}),s("design:type",Object)],hv.prototype,"matchednodeset",void 0),a([h({type:Object}),s("design:type",Object)],hv.prototype,"colorSetChanged",void 0),a([h({type:Array}),s("design:type",Object)],hv.prototype,"selectColor",void 0),a([h({type:Object}),s("design:type","function"==typeof(dv=zg)?dv:Object)],hv.prototype,"renderHierarchy",void 0),a([h({type:Object,notify:!0,readOnly:!0,computed:"_computeSelection(datasets, _selectedRunIndex, _selectedTagIndex, _selectedGraphType, _selectedBatch, _selectedStep)"}),s("design:type",Object)],hv.prototype,"selection",void 0),a([h({type:Object,notify:!0}),s("design:type",Object)],hv.prototype,"selectedFile",void 0),a([h({type:Object}),s("design:type",Object)],hv.prototype,"_selectedColors",void 0),a([h({type:Number,observer:"_selectedRunIndexChanged"}),s("design:type",Number)],hv.prototype,"_selectedRunIndex",void 0),a([h({type:Number}),s("design:type",Number)],hv.prototype,"_selectedBatch",void 0),a([h({type:Number}),s("design:type",Number)],hv.prototype,"_selectedStep",void 0),a([h({type:Boolean,notify:!0}),s("design:type",Boolean)],hv.prototype,"traceInputs",void 0),a([h({type:Boolean,notify:!0}),s("design:type",Boolean)],hv.prototype,"autoExtractNodes",void 0),a([h({type:Number,observer:"_selectedTagIndexChanged"}),s("design:type",Number)],hv.prototype,"_selectedTagIndex",void 0),a([h({type:String}),s("design:type",String)],hv.prototype,"_selectedGraphType",void 0),a([h({type:String,notify:!0}),s("design:type",String)],hv.prototype,"selectedNode",void 0),a([h({type:Boolean}),s("design:type",Boolean)],hv.prototype,"showSessionRunsDropdown",void 0),a([h({type:Boolean}),s("design:type",Boolean)],hv.prototype,"showUploadButton",void 0),a([h({type:Boolean}),s("design:type",Boolean)],hv.prototype,"_expanded",void 0),a([h({type:Boolean}),s("design:type",Boolean)],hv.prototype,"_legendOpened",void 0),a([h({type:Object}),s("design:type",Object)],hv.prototype,"_downloadFilename",void 0),a([h({type:Object,observer:"_newMenu"}),s("design:type",Object)],hv.prototype,"microsteps",void 0),a([h({type:Object,observer:"_updateColorItems"}),s("design:type",Object)],hv.prototype,"colors",void 0),a([h({type:Object}),s("design:type",Object)],hv.prototype,"nodeName",void 0),a([h({type:Object}),s("design:type",Object)],hv.prototype,"menu",void 0),a([h({type:Object}),s("design:type",Object)],hv.prototype,"unmatched",void 0),a([h({type:Object}),s("design:type",Object)],hv.prototype,"precisionmenu",void 0),a([h({type:Number}),s("design:type",Number)],hv.prototype,"selectedSide",void 0),a([p("colorset"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],hv.prototype,"_observe",null),a([p("unmatched"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],hv.prototype,"_observeUnmatchedNode",null),a([p("matchedlist"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],hv.prototype,"_observeMatchedList",null),a([p("selection"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],hv.prototype,"_clearAllToggleCheckbox",null),hv=a([c("tf-graph-controls")],hv);let yv=class extends(pr(Pt)){constructor(){super(...arguments),this._renderDepth=1,this._allowGraphSelect=!0,this.edgeWidthFunction="",this.handleNodeSelected="",this.edgeLabelFunction="",this.handleEdgeSelected=""}panToNode(e){this.$$("tf-graph-scene").panToNode(e)}_autoExtractNodesChanged(){var e=this.graphHierarchy;if(e){for(const t of Object.values(e.getNodeMap()))t.include=Nf.UNSPECIFIED;this._buildRenderHierarchy(e)}}_buildNewRenderHierarchy(){var e=this.graphHierarchy;e&&this._buildRenderHierarchy(e)}_statsChanged(){var e=this.stats,t=this.devicesForStats;this.graphHierarchy&&(e&&t&&(Bf(this.basicGraph,e,t),pg(this.graphHierarchy)),this._buildRenderHierarchy(this.graphHierarchy))}ready(){super.ready(),this.addEventListener("graph-select",this._graphSelected.bind(this)),this.addEventListener("disable-click",this._disableClick.bind(this)),this.addEventListener("enable-click",this._enableClick.bind(this)),this.addEventListener("node-toggle-expand",this._nodeToggleExpand.bind(this)),document.addEventListener("menu-expand-node-changed",this._handleMenuExpandNodeChanged.bind(this)),this.addEventListener("node-select",this._nodeSelected.bind(this)),this.addEventListener("node-highlight",this._nodeHighlighted.bind(this)),this.addEventListener("node-unhighlight",this._nodeUnhighlighted.bind(this)),this.addEventListener("node-toggle-extract",this._nodeToggleExtract.bind(this)),this.addEventListener("node-toggle-seriesgroup",this._nodeToggleSeriesGroup.bind(this)),this.addEventListener("edge-select",this._edgeSelected.bind(this)),this.addEventListener("edge-highlight",this._edgeHighlighted.bind(this)),this.addEventListener("edge-unhighlight",this._edgeUnhighlighted.bind(this)),this.addEventListener("annotation-select",this._nodeSelected.bind(this)),this.addEventListener("annotation-highlight",this._nodeHighlighted.bind(this)),this.addEventListener("annotation-unhighlight",this._nodeUnhighlighted.bind(this))}_buildRenderHierarchy(e){if(e.root.type!==Tf.META)return;const t=lf("new tf_graph_render.Hierarchy",(()=>{const t=new zg(e,!!this.stats,this.autoExtractNodes);return t.edgeLabelFunction=this.edgeLabelFunction,t.edgeWidthFunction=this.edgeWidthFunction,t}),Xu.RENDER_BUILD_HIERARCHY);this._setRenderHierarchy(t)}_getVisible(e){return e?this.renderHierarchy.getNearestVisibleAncestor(e):e}fit(){this.$.scene.fit()}getImageBlob(){return this.$.scene.getImageBlob()}_graphChanged(){this.graphHierarchy&&(this.graphHierarchy.addListener(ag.TEMPLATES_UPDATED,(()=>{this.$.scene.nodeColorsChanged()})),this.fire("graph-select"))}_graphSelected(e){this._allowGraphSelect&&this.set("selectedEdge",null),this._allowGraphSelect=!0}_disableClick(e){this._allowGraphSelect=!1}_enableClick(e){this._allowGraphSelect=!0}_selectedNodeChanged(){var e=this.selectedNode;this.handleNodeSelected&&this.handleNodeSelected(e)}_menuSelectedNodeExpand(){return l(this,void 0,void 0,(function*(){if(!this.renderHierarchy.renderedOpNames.includes(this.selectedNode)&&""!=this.selectedNode){const e=this.selectedNode,t=new URLSearchParams;t.set("node",this.selectedNode);const n=this.renderHierarchy.hierarchy.getNodeMap(),i=hs().pluginRouteForSrc("graph_ascend","/expandnodes",t);let r="";try{const t=yield jm(i);let o;try{o=JSON.parse((new TextDecoder).decode(t).replace(/'/g,'"'))}catch(e){console.error("Parse tooltips failed, please check the format of tooltips in the input vis file")}if(0===o[1].length&&0===o[2].length)return;for(const e of o[1]){r=o[0]+e;const t=this.renderHierarchy.getRenderNodeByName(r);r in n&&!t.expanded&&(yield this._nodeToggleExpand({detail:{name:r}}))}for(const e of o[2]){let t;t="N___"==o[0]?"B___":"N___",r=t+e;const i=this.renderHierarchy.getRenderNodeByName(r);r in n&&!i.expanded&&(yield this._nodeToggleExpand({detail:{name:r}}))}this.async((()=>{try{this.set("selectedNode",""),this.set("selectedNode",e)}catch(e){console.error("Error during async set operation:",e)}}),175)}catch(e){console.error("Error fetching expandnodesPath:",e)}}}))}_selectedEdgeChanged(){var e=this.selectedEdge;this._deselectPreviousEdge(),e&&(this._lastSelectedEdgeGroup.classed(Wg.Edge.SELECTED,!0),this._updateMarkerOfSelectedEdge(e,!0)),this.handleEdgeSelected&&this.handleEdgeSelected(e)}_highlightedEdgeChange(){let e=this.highlightedEdge;this._lastHighlightedEdgeGroup.classed(Wg.Edge.HIGHLIGHTED,!!e),e?this._updateMarkerOfSelectedEdge(e,!1):this._lastHighlightedEdgeGroup.selectAll("path."+Wg.Edge.LINE).each(((e,t)=>{var n,i,r;if(e.label&&(e.v!==(null===(n=this.selectedEdge)||void 0===n?void 0:n.v)||e.w!==(null===(i=this.selectedEdge)||void 0===i?void 0:i.w)||e.id!==(null===(r=this.selectedEdge)||void 0===r?void 0:r.id))){const t=this._lastHighlightedEdgeGroup.selectAll("path.edgeline");e.label.startMarkerId&&t.style("marker-start",`url(#${e.label.startMarkerId.replace("highlighted","dataflow")})`),e.label.endMarkerId&&t.style("marker-end",`url(#${e.label.endMarkerId.replace("highlighted","dataflow")})`)}}))}_nodeSelected(e){this._allowGraphSelect&&(this.set("selectedNode",e.detail.name),this.set("selectedEdge",null)),this._allowGraphSelect=!0}_edgeSelected(e){this._allowGraphSelect&&(this.set("_lastSelectedEdgeGroup",e.detail.edgeGroup),this.set("selectedEdge",e.detail.edgeData),this.set("selectedNode",null)),this._allowGraphSelect=!0}_nodeHighlighted(e){this.set("highlightedNode",e.detail.name)}_edgeHighlighted(e){var t,n,i,r,o,a;(null===(t=e.detail.edgeData)||void 0===t?void 0:t.v)===(null===(n=this.selectedEdge)||void 0===n?void 0:n.v)&&(null===(i=e.detail.edgeData)||void 0===i?void 0:i.w)===(null===(r=this.selectedEdge)||void 0===r?void 0:r.w)&&(null===(o=e.detail.edgeData)||void 0===o?void 0:o.id)===(null===(a=this.selectedEdge)||void 0===a?void 0:a.id)||(this.set("_lastHighlightedEdgeGroup",e.detail.edgeGroup),this.set("highlightedEdge",e.detail.edgeData))}_nodeUnhighlighted(e){this.set("highlightedNode",null)}_edgeUnhighlighted(e){this.set("highlightedEdge",null)}_handleMenuExpandNodeChanged(e){const t=e.detail.name,n=e.detail.open,i=this.renderHierarchy.getRenderNodeByName(t);i.expanded||"expand"!=n?i.expanded&&"unexpand"==n&&this._nodeToggleExpand({detail:{name:t}}):this._nodeToggleExpand({detail:{name:t}}),this._nodeSelected({detail:{name:t}})}_nodeToggleExpand(e){return l(this,void 0,void 0,(function*(){const t=e.detail.name,n=this.renderHierarchy.getRenderNodeByName(t);if(n.node.type!==Tf.OP)if(n.expanded||this.renderHierarchy.checkSubhierarchy(t))n.expanded=!n.expanded,this.async((()=>{this.$.scene.setNodeExpanded(n)}),75);else{const e=new URLSearchParams;e.set("run",this.selection.run),e.set("node",n.node.name||""),this.selection.tag&&e.set("tag",this.selection.tag),e.set("batch",String(-1===this.selection.batch?-1:this.selection.batch-1)),e.set("step",String(-1===this.selection.step?-1:this.selection.step-1));const i=hs().pluginRouteForSrc("graph_ascend","/subgraph",e),r=yield jm(i),o=yield qm(r),a=yield Wf(o,Xf,void 0);hg(this.renderHierarchy.hierarchy,a,t),this.renderHierarchy.buildSubhierarchy(t,a),n.expanded=!n.expanded,this.async((()=>{this.$.scene.setNodeExpanded(n)}),75)}}))}_nodeToggleExtract(e){var t=e.detail.name;this.nodeToggleExtract(t)}nodeToggleExtract(e){const t=this.renderHierarchy.getRenderNodeByName(e);t.node.include==Nf.INCLUDE?t.node.include=Nf.EXCLUDE:t.node.include==Nf.EXCLUDE?t.node.include=Nf.INCLUDE:t.node.include=this.renderHierarchy.isNodeAuxiliary(t)?Nf.INCLUDE:Nf.EXCLUDE,this._buildRenderHierarchy(this.graphHierarchy),sf({actionId:Xu.NODE_AUXILIARY_EXTRACTION_CHANGED,eventLabel:t.node.include===Nf.INCLUDE?"Auxiliary to Main":"Main to Auxiliary"})}_nodeToggleSeriesGroup(e){var t=e.detail.name;this.nodeToggleSeriesGroup(t)}nodeToggleSeriesGroup(e){this.set("progress",{value:0,msg:""});var t=df(cf(this),100,"Namespace hierarchy");const n=Object.assign(Object.assign({},this.hierarchyParams),{seriesMap:this.graphHierarchy.buildSeriesGroupMapToggled(e)});dg(this.basicGraph,n,t).then(function(e){this.set("graphHierarchy",e),this._buildRenderHierarchy(this.graphHierarchy)}.bind(this))}_deselectPreviousEdge(){var e,t;const n="."+Wg.Edge.SELECTED,i=null===(e=this.$.scene.shadowRoot)||void 0===e?void 0:e.querySelector(n),r=null===(t=this.$.scene.shadowRoot)||void 0===t?void 0:t.querySelectorAll("path.edgeline");i&&Nh(i).classed(Wg.Edge.SELECTED,!1).each(((e,t)=>{if(e.label&&r){const t=function(e){return"string"==typeof e?new xc([document.querySelectorAll(e)],[document.documentElement]):new xc([null==e?[]:e],bc)}(r);e.label.startMarkerId&&t.style("marker-start",`url(#${e.label.startMarkerId})`),e.label.endMarkerId&&t.style("marker-end",`url(#${e.label.endMarkerId})`)}}))}_updateMarkerOfSelectedEdge(e,t){var n,i,r;if(e.label){const o=t?"selected-":"highlighted-",a=e.label.startMarkerId||e.label.endMarkerId;if(a){const s=a.replace("dataflow-",o);let l=null===(n=this.$.scene.shadowRoot)||void 0===n?void 0:n.querySelector("#"+s);if(!l){const e=null===(i=this.$.scene.shadowRoot)||void 0===i?void 0:i.querySelector("#"+a);l=null==e?void 0:e.cloneNode(!0),l.setAttribute("id",s),l.classList.add(`${o}arrowhead`),null===(r=null==e?void 0:e.parentNode)||void 0===r||r.appendChild(l)}const c=e.label.startMarkerId?"marker-start":"marker-end";t?this._lastSelectedEdgeGroup.selectAll("path.edgeline").style(c,`url(#${s})`):this._lastHighlightedEdgeGroup.selectAll("path.edgeline").style(c,`url(#${s})`)}}}not(e){return!e}};var _v;yv.template=Ot`
    <style>
      .container {
        width: 100%;
        height: 100%;
        background: white;
        box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);
      }

      .vertical {
        width: 100%;
        height: 100%;
        @apply --layout-vertical;
      }

      .auto {
        @apply --layout-flex-auto;
        @apply --layout-vertical;
      }

      h2 {
        text-align: center;
      }

      paper-button {
        text-transform: none;
      }
    </style>
    <div class="container">
      <div class="vertical">
        <template is="dom-if" if="[[title]]">
          <h2>[[title]]</h2>
        </template>
        <tf-graph-scene
          id="scene"
          class="auto"
          render-hierarchy="[[renderHierarchy]]"
          highlighted-node="[[_getVisible(highlightedNode)]]"
          selected-node="{{selectedNode}}"
          selected-edge="{{selectedEdge}}"
          progress="[[progress]]"
          node-context-menu-items="[[nodeContextMenuItems]]"
          handle-edge-selected="[[handleEdgeSelected]]"
          trace-inputs="[[traceInputs]]"
        ></tf-graph-scene>
      </div>
    </div>
  `,a([h({type:Object,notify:!0,observer:"_graphChanged"}),s("design:type","function"==typeof(pv=sg)?pv:Object)],yv.prototype,"graphHierarchy",void 0),a([h({type:Object}),s("design:type","function"==typeof(uv=Pf)?uv:Object)],yv.prototype,"basicGraph",void 0),a([h({type:Object}),s("design:type",Object)],yv.prototype,"stats",void 0),a([h({type:Object}),s("design:type",Object)],yv.prototype,"devicesForStats",void 0),a([h({type:Object}),s("design:type","function"==typeof(fv=t.HierarchyParams)?fv:Object)],yv.prototype,"hierarchyParams",void 0),a([h({type:Object,notify:!0}),s("design:type",Object)],yv.prototype,"progress",void 0),a([h({type:String}),s("design:type",String)],yv.prototype,"title",void 0),a([h({type:String,notify:!0}),s("design:type",String)],yv.prototype,"selectedNode",void 0),a([h({type:Object,notify:!0}),s("design:type",Object)],yv.prototype,"selectedEdge",void 0),a([h({type:Object}),s("design:type",Object)],yv.prototype,"_lastSelectedEdgeGroup",void 0),a([h({type:Object}),s("design:type",Object)],yv.prototype,"_lastHighlightedEdgeGroup",void 0),a([h({type:String,notify:!0}),s("design:type",String)],yv.prototype,"highlightedNode",void 0),a([h({type:Object,notify:!0}),s("design:type","function"==typeof(gv=i.EdgeData)?gv:Object)],yv.prototype,"highlightedEdge",void 0),a([h({type:Object,readOnly:!0,notify:!0}),s("design:type","function"==typeof(mv=zg)?mv:Object)],yv.prototype,"renderHierarchy",void 0),a([h({type:Boolean}),s("design:type",Boolean)],yv.prototype,"traceInputs",void 0),a([h({type:Boolean}),s("design:type",Boolean)],yv.prototype,"autoExtractNodes",void 0),a([h({type:Array}),s("design:type",Array)],yv.prototype,"nodeContextMenuItems",void 0),a([h({type:Number}),s("design:type",Number)],yv.prototype,"_renderDepth",void 0),a([h({type:Boolean}),s("design:type",Boolean)],yv.prototype,"_allowGraphSelect",void 0),a([h({type:Object}),s("design:type",Object)],yv.prototype,"edgeWidthFunction",void 0),a([h({type:Object}),s("design:type",Object)],yv.prototype,"handleNodeSelected",void 0),a([h({type:Object}),s("design:type",Object)],yv.prototype,"edgeLabelFunction",void 0),a([h({type:Object}),s("design:type",Object)],yv.prototype,"handleEdgeSelected",void 0),a([h({type:Object}),s("design:type","function"==typeof(vv=void 0!==o.Selection&&o.Selection)?vv:Object)],yv.prototype,"selection",void 0),a([p("autoExtractNodes"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],yv.prototype,"_autoExtractNodesChanged",null),a([p("graphHierarchy","edgeWidthFunction","handleNodeSelected","edgeLabelFunction","handleEdgeSelected"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],yv.prototype,"_buildNewRenderHierarchy",null),a([p("stats","devicesForStats"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],yv.prototype,"_statsChanged",null),a([p("selectedNode"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],yv.prototype,"_selectedNodeChanged",null),a([p("selectedNode"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",Promise)],yv.prototype,"_menuSelectedNodeExpand",null),a([p("selectedEdge"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],yv.prototype,"_selectedEdgeChanged",null),a([p("highlightedEdge"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],yv.prototype,"_highlightedEdgeChange",null),yv=a([c("tf-graph")],yv);let bv=class extends(pr(Pt)){constructor(){super(...arguments),this.specificHealthPillStep=0,this.healthPillEntries=Kg}ready(){super.ready();var e=document.getElementById("mainContainer"),t=document.querySelector("tf-dashboard-layout .scrollbar");e&&t&&(e.style.overflow="hidden",t.style.overflow="hidden")}_healthPillsAvailable(e,t){return e&&t}_computeTensorCountString(e,t){return e?e[t].toFixed(0):""}get healthPillValuesForSelectedNode(){var e=this.nodeNamesToHealthPills,t=this.healthPillStepIndex,n=this.selectedNode,i=this.allStepsModeEnabled;if(this.areHealthPillsLoading)return null;if(!n)return null;const r=e[n];if(!r)return null;const o=r[i?0:t];return o?o.value.slice(2,8):null}get _currentStepDisplayValue(){var e=this.nodeNamesToHealthPills,t=this.healthPillStepIndex,n=this.allStepsModeEnabled,i=this.specificHealthPillStep,r=this.areHealthPillsLoading;if(n)return i.toFixed(0);if(r)return 0;for(let n in e)return e[n][t].step.toFixed(0);return 0}get _biggestStepEverSeen(){var e=this.nodeNamesToHealthPills;for(let n in e){var t=e[n];return Math.max(this._biggestStepEverSeen,t[t.length-1].step)}return this._biggestStepEverSeen||0}get _maxStepIndex(){var e=this.nodeNamesToHealthPills;for(let t in e)return e[t].length-1;return 0}_hasDebuggerNumericAlerts(e){return e&&e.length}_updateAlertsList(){var e=this.debuggerNumericAlerts,t=this.$$("#numeric-alerts-body");if(t){t.innerText="";for(var n=0;n<e.length;n++){var i=e[n],r=document.createElement("tr"),o=document.createElement("td");o.innerText=(f=i.first_timestamp,void 0,(g=+new Date-+new Date(f/1e3))<3e4?"just now":g<6e4?Math.floor(g/1e3)+" seconds ago":g<12e4?"a minute ago":g<36e5?Math.floor(g/6e4)+" minutes ago":1==Math.floor(g/36e5)?"an hour ago":g<864e5?Math.floor(g/36e5)+" hours ago":g<1728e5?"yesterday":Math.floor(g/864e5)+" days ago"),o.classList.add("first-offense-td"),r.appendChild(o);var a=document.createElement("td");a.classList.add("tensor-device-td");var s=document.createElement("div");s.classList.add("tensor-section-within-table"),s.innerText=i.tensor_name,this._addOpExpansionListener(s,i.tensor_name),a.appendChild(s);var l=document.createElement("div");l.classList.add("device-section-within-table"),l.innerText="("+i.device_name+")",a.appendChild(l),r.appendChild(a);var c=document.createElement("div");c.classList.add("mini-health-pill");var d=document.createElement("td");if(d.classList.add("mini-health-pill-td"),d.appendChild(c),r.appendChild(d),i.neg_inf_event_count){var h=document.createElement("div");h.classList.add("negative-inf-mini-health-pill-section"),h.innerText=i.neg_inf_event_count,h.setAttribute("title",i.neg_inf_event_count+" events with -∞"),c.appendChild(h)}if(i.pos_inf_event_count){var p=document.createElement("div");p.classList.add("positive-inf-mini-health-pill-section"),p.innerText=i.pos_inf_event_count,p.setAttribute("title",i.pos_inf_event_count+" events with +∞"),c.appendChild(p)}if(i.nan_event_count){var u=document.createElement("div");u.classList.add("nan-mini-health-pill-section"),u.innerText=i.nan_event_count,u.setAttribute("title",i.nan_event_count+" events with NaN"),c.appendChild(u)}rr(t).appendChild(r)}var f,g}}_addOpExpansionListener(e,t){e.addEventListener("click",(()=>{var e,n=Bg(document.getElementById("scene"),this.renderHierarchy,t),i=document.querySelector("tf-graph-info#graph-info");i&&(e=i.scrollHeight-i.scrollTop);var r=this.selectedNode;this.set("selectedNode",n);var o=()=>{i.scrollTop=i.scrollHeight-e};i&&(r?o():window.setTimeout(o,20))}))}};bv.template=Ot`
    <style>
      :host {
        font-size: 12px;
        margin: 0;
        padding: 0;
        display: block;
      }

      h2 {
        padding: 0;
        text-align: center;
        margin: 0;
      }

      .health-pill-legend {
        padding: 15px;
      }

      .health-pill-legend h2 {
        text-align: left;
      }

      .health-pill-entry {
        margin: 10px 10px 10px 0;
      }

      .health-pill-entry .color-preview {
        width: 26px;
        height: 26px;
        border-radius: 3px;
        display: inline-block;
        margin: 0 10px 0 0;
      }

      .health-pill-entry .color-label,
      .health-pill-entry .tensor-count {
        color: #777;
        display: inline-block;
        height: 26px;
        font-size: 22px;
        line-height: 26px;
        vertical-align: top;
      }

      .health-pill-entry .tensor-count {
        float: right;
      }

      #health-pill-step-slider {
        width: 100%;
        margin: 0 0 0 -15px;
        /* 31 comes from adding a padding of 15px from both sides of the paper-slider, subtracting
   * 1px so that the slider width aligns with the image (the last slider marker takes up 1px),
   * and adding 2px to account for a border of 1px on both sides of the image. 30 - 1 + 2.
   * Apparently, the paper-slider lacks a mixin for those padding values. */
        width: calc(100% + 31px);
      }

      #health-pills-loading-spinner {
        width: 20px;
        height: 20px;
        vertical-align: top;
      }

      #health-pill-step-number-input {
        text-align: center;
        vertical-align: top;
      }

      #numeric-alerts-table-container {
        max-height: 400px;
        overflow-x: hidden;
        overflow-y: auto;
      }

      #numeric-alerts-table {
        text-align: left;
      }

      #numeric-alerts-table td {
        vertical-align: top;
      }

      #numeric-alerts-table .first-offense-td {
        display: inline-block;
      }

      .first-offense-td {
        width: 80px;
      }

      .tensor-device-td {
        max-width: 140px;
        word-wrap: break-word;
      }

      .tensor-section-within-table {
        color: #266236;
        cursor: pointer;
        opacity: 0.8;
        text-decoration: underline;
      }

      .tensor-section-within-table:hover {
        opacity: 1;
      }

      .device-section-within-table {
        color: #666;
      }

      .mini-health-pill {
        width: 130px;
      }

      .mini-health-pill > div {
        height: 100%;
        width: 60px;
        border-radius: 3px;
      }

      #event-counts-th {
        padding: 0 0 0 10px;
      }

      .negative-inf-mini-health-pill-section {
        background: rgb(255, 141, 0);
        width: 20px;
      }

      .positive-inf-mini-health-pill-section {
        background: rgb(0, 62, 212);
        width: 20px;
      }

      .nan-mini-health-pill-section {
        background: rgb(204, 47, 44);
        width: 20px;
      }

      .negative-inf-mini-health-pill-section,
      .positive-inf-mini-health-pill-section,
      .nan-mini-health-pill-section {
        color: #fff;
        display: inline-block;
        height: 100%;
        line-height: 20px;
        margin: 0 0 0 10px;
        text-align: center;
      }

      .no-numeric-alerts-notification {
        margin: 0;
      }
    </style>
    <paper-material elevation="1" class="card health-pill-legend">
      <div class="title">
        Enable all (not just sampled) steps. Requires slow disk read.
      </div>
      <paper-toggle-button
        id="enableAllStepsModeToggle"
        checked="{{allStepsModeEnabled}}"
      >
      </paper-toggle-button>
      <h2>
        Step of Health Pills:
        <template is="dom-if" if="[[allStepsModeEnabled]]">
          <input
            type="number"
            id="health-pill-step-number-input"
            min="0"
            max="[[_biggestStepEverSeen]]"
            value="{{specificHealthPillStep::input}}"
          />
        </template>
        <template is="dom-if" if="[[!allStepsModeEnabled]]">
          [[_currentStepDisplayValue]]
        </template>
        <paper-spinner-lite
          active
          hidden$="[[!areHealthPillsLoading]]"
          id="health-pills-loading-spinner"
        ></paper-spinner-lite>
      </h2>
      <template is="dom-if" if="[[allStepsModeEnabled]]">
        <paper-slider
          id="health-pill-step-slider"
          immediate-value="{{specificHealthPillStep}}"
          max="[[_biggestStepEverSeen]]"
          snaps
          step="1"
          value="{{specificHealthPillStep}}"
        ></paper-slider>
      </template>
      <template is="dom-if" if="[[!allStepsModeEnabled]]">
        <template is="dom-if" if="[[_maxStepIndex]]">
          <paper-slider
            id="health-pill-step-slider"
            immediate-value="{{healthPillStepIndex}}"
            max="[[_maxStepIndex]]"
            snaps
            step="1"
            value="{{healthPillStepIndex}}"
          ></paper-slider>
        </template>
      </template>
      <h2>
        Health Pill
        <template is="dom-if" if="[[healthPillValuesForSelectedNode]]">
          Counts for Selected Node
        </template>
        <template is="dom-if" if="[[!healthPillValuesForSelectedNode]]">
          Legend
        </template>
      </h2>
      <template is="dom-repeat" items="[[healthPillEntries]]">
        <div class="health-pill-entry">
          <div
            class="color-preview"
            style="background:[[item.background_color]]"
          ></div>
          <div class="color-label">[[item.label]]</div>
          <div class="tensor-count">
            [[_computeTensorCountString(healthPillValuesForSelectedNode,
            index)]]
          </div>
        </div>
      </template>
      <div hidden$="[[!_hasDebuggerNumericAlerts(debuggerNumericAlerts)]]">
        <h2 id="numeric-alerts-header">Numeric Alerts</h2>
        <p>Alerts are sorted from top to bottom by increasing timestamp.</p>
        <div id="numeric-alerts-table-container">
          <table id="numeric-alerts-table">
            <thead>
              <tr>
                <th>First Offense</th>
                <th>Tensor (Device)</th>
                <th id="event-counts-th">Event Counts</th>
              </tr>
            </thead>
            <tbody id="numeric-alerts-body"></tbody>
          </table>
        </div>
      </div>
      <template
        is="dom-if"
        if="[[!_hasDebuggerNumericAlerts(debuggerNumericAlerts)]]"
      >
        <p class="no-numeric-alerts-notification">
          No numeric alerts so far. That is likely good. Alerts indicate the
          presence of NaN or (+/-) Infinity values, which may be concerning.
        </p>
      </template>
    </paper-material>
  `,a([h({type:Object}),s("design:type","function"==typeof(_v=zg)?_v:Object)],bv.prototype,"renderHierarchy",void 0),a([h({type:Array,notify:!0}),s("design:type",Object)],bv.prototype,"debuggerNumericAlerts",void 0),a([h({type:Object}),s("design:type",Object)],bv.prototype,"nodeNamesToHealthPills",void 0),a([h({type:Number,notify:!0}),s("design:type",Object)],bv.prototype,"healthPillStepIndex",void 0),a([h({type:Number,notify:!0}),s("design:type",Number)],bv.prototype,"specificHealthPillStep",void 0),a([h({type:String,notify:!0}),s("design:type",Object)],bv.prototype,"selectedNode",void 0),a([h({type:String,notify:!0}),s("design:type",Object)],bv.prototype,"highlightedNode",void 0),a([h({type:Number,notify:!0}),s("design:type",Object)],bv.prototype,"selectedNodeInclude",void 0),a([h({type:Boolean}),s("design:type",Object)],bv.prototype,"areHealthPillsLoading",void 0),a([h({type:Array}),s("design:type",Array)],bv.prototype,"healthPillEntries",void 0),a([h({type:Boolean,notify:!0}),s("design:type",Object)],bv.prototype,"allStepsModeEnabled",void 0),a([u("nodeNamesToHealthPills","healthPillStepIndex","selectedNode","allStepsModeEnabled","areHealthPillsLoading"),s("design:type",Object),s("design:paramtypes",[])],bv.prototype,"healthPillValuesForSelectedNode",null),a([u("nodeNamesToHealthPills","healthPillStepIndex","allStepsModeEnabled","specificHealthPillStep","areHealthPillsLoading"),s("design:type",Object),s("design:paramtypes",[])],bv.prototype,"_currentStepDisplayValue",null),a([u("nodeNamesToHealthPills"),s("design:type",Number),s("design:paramtypes",[])],bv.prototype,"_biggestStepEverSeen",null),a([u("nodeNamesToHealthPills"),s("design:type",Number),s("design:paramtypes",[])],bv.prototype,"_maxStepIndex",null),a([p("debuggerNumericAlerts"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],bv.prototype,"_updateAlertsList",null),bv=a([c("tf-graph-debugger-data-card")],bv);let xv=class extends(pr(Pt)){_itemTypeChanged(){"subnode"!==this.itemType?this.$["list-item"].classList.add("clickable"):this.$["list-item"].classList.remove("clickable")}_nodeListener(e){this.fire("node-list-item-"+e.type,{nodeName:this.name,type:this.itemType})}_fadedClass(e){return e&&e.isFadedOut?"faded":""}};var wv,Sv,Ev;xv.template=Ot`
    <style>
      #list-item {
        width: 100%;
        color: var(--secondary-text-color);
        font-size: 11pt;
        font-weight: 400;
        position: relative;
        display: inline-block;
      }

      #list-item:hover {
        background-color: var(--google-yellow-100);
      }

      .clickable {
        cursor: pointer;
      }

      #list-item span {
        margin-left: 40px;
      }

      #list-item.excluded span {
        color: #999;
      }

      #list-item span.edge-label {
        float: right;
        font-size: 10px;
        margin-left: 3px;
        margin-right: 5px;
      }

      .node-icon {
        position: absolute;
        top: 1px;
        left: 2px;
      }

      .faded span {
        color: var(--tb-graph-faded);
      }
    </style>

    <div
      id="list-item"
      on-mouseover="_nodeListener"
      on-mouseout="_nodeListener"
      on-click="_nodeListener"
    >
      <div class$="{{_fadedClass(itemRenderInfo)}}">
        <tf-node-icon
          class="node-icon"
          height="12"
          node="[[itemNode]]"
          render-info="[[itemRenderInfo]]"
          template-index="[[templateIndex]]"
        >
        </tf-node-icon>
        <span title$="[[name]]">[[name]]</span>
      </div>
    </div>
  `,a([h({type:Object}),s("design:type",Object)],xv.prototype,"cardNode",void 0),a([h({type:Object}),s("design:type",Object)],xv.prototype,"itemNode",void 0),a([h({type:String}),s("design:type",String)],xv.prototype,"edgeLabel",void 0),a([h({type:Object}),s("design:type",Object)],xv.prototype,"itemRenderInfo",void 0),a([h({type:String}),s("design:type",String)],xv.prototype,"name",void 0),a([h({type:String,observer:"_itemTypeChanged"}),s("design:type",String)],xv.prototype,"itemType",void 0),a([h({type:Object}),s("design:type",Function)],xv.prototype,"templateIndex",void 0),xv=a([c("tf-graph-op-compat-list-item")],xv);let Cv=class extends(pr(us(Pt))){constructor(){super(...arguments),this._expanded=!0,this._opCompatColor=xg.COMPATIBLE,this._opIncompatColor=xg.INCOMPATIBLE,this._templateIndex=null}_getNode(e,t){return t.node(e)}_getRenderInfo(e,t){return this.renderHierarchy.getOrCreateRenderNodeByName(e)}_toggleExpanded(){this._expanded=!this._expanded}_getToggleIcon(e){return e?"expand-less":"expand-more"}_resizeList(e){var t=document.querySelector(e);t&&t.fire("iron-resize")}get _incompatibleOpNodes(){const e=this.graphHierarchy;return e&&e.root?(this.async(this._resizeList.bind(this,"#incompatibleOpsList")),ug(e)):[]}get _opCompatScore(){var e=this.graphHierarchy;if(e&&e.root){var t=e.root,n=t.compatibilityHistogram.compatible,i=t.compatibilityHistogram.incompatible;if(0==n&&0==i)return 0;var r=n+i;return Math.floor(100*n/r)/100}return 0}get _opCompatScoreLabel(){var e=this._opCompatScore;return Qh(".0%")(e)}get _totalIncompatOps(){var e=this.graphHierarchy;return e&&e.root?e.root.compatibilityHistogram.incompatible:0}_graphHierarchyChanged(){this._templateIndex=this.graphHierarchy.getTemplateIndex(),this.graphHierarchy.addListener(ag.TEMPLATES_UPDATED,(()=>{this._templateIndex=this.graphHierarchy.getTemplateIndex()}))}};var zv,kv,Mv,Av;Cv.template=Ot`
    <style>
      :host {
        max-height: 500px;
      }

      .incompatible-ops-list {
        height: 350px;
        max-height: 400px;
        overflow-y: scroll;
        display: flex;
        flex-direction: column;
      }

      iron-list {
        flex: 1 1 auto;
      }

      paper-item {
        padding: 0;
        background: var(--secondary-background-color);
      }

      paper-item-body[two-line] {
        min-height: 0;
        padding: 8px 12px 4px;
      }

      .expandedInfo {
        padding: 8px 12px;
        font-weight: 500;
        font-size: 12pt;
        width: 100%;
      }

      .node-name {
        white-space: normal;
        word-wrap: break-word;
        font-size: 14pt;
        font-weight: 500;
      }

      .subtitle {
        color: var(--secondary-text-color);
        font-size: 12pt;
      }

      .toggle-button {
        float: right;
        max-height: 20px;
        max-width: 20px;
        padding: 0;
      }

      .non-control-list-item {
        padding-left: 10px;
      }

      div.op-compat-display {
        margin-top: 10px;
        display: inline-block;
      }

      /**
       * Sadly, because the whole body is inverted in color, legends also need
       * to be inverted.
       **/
      :host(.dark-mode) div.op-compat-display {
        filter: invert(1);
      }

      svg.op-compat {
        width: 250px;
        height: 25px;
        float: left;
      }

      div.op-compat-value {
        float: right;
        height: 100%;
        font-size: 14px;
        color: black;
        margin-left: 10px;
      }
    </style>

    <paper-item>
      <paper-item-body two-line>
        <div>
          <paper-icon-button
            icon="{{_getToggleIcon(_expanded)}}"
            on-click="_toggleExpanded"
            class="toggle-button"
          >
          </paper-icon-button>
          <div class="node-name" id="nodetitle">[[nodeTitle]]</div>
        </div>
        <div secondary>
          <div class="subtitle">
            <div class="op-compat-display">
              <svg
                class="op-compat"
                preserveAspectRatio="xMinYMid meet"
                viewBox="0 0 250 25"
              >
                <defs>
                  <linearGradient id="op-compat-fill">
                    <stop offset="0" stop-color$="[[_opCompatColor]]"></stop>
                    <stop
                      offset$="[[_opCompatScore]]"
                      stop-color$="[[_opCompatColor]]"
                    ></stop>
                    <stop
                      offset$="[[_opCompatScore]]"
                      stop-color$="[[_opIncompatColor]]"
                    ></stop>
                    <stop offset="1" stop-color$="[[_opIncompatColor ]]"></stop>
                  </linearGradient>
                </defs>
                <rect
                  height="25"
                  width="250"
                  rx="5"
                  ry="5"
                  style="fill: url('#op-compat-fill');"
                ></rect>
              </svg>
              <div class="op-compat-value">[[_opCompatScoreLabel]]</div>
            </div>
          </div>
        </div>
      </paper-item-body>
    </paper-item>

    <iron-collapse opened="{{_expanded}}">
      <template is="dom-if" if="{{_expanded}}" restamp="true">
        <div class="expandedInfo">
          Incompatible Operations: (<span>[[_totalIncompatOps]]</span>)
          <iron-list
            class="incompatible-ops-list"
            id="incompatibleOpsList"
            items="[[_incompatibleOpNodes]]"
          >
            <template>
              <tf-graph-op-compat-list-item
                class="non-control-list-item"
                item-node="[[item]]"
                item-render-info="[[_getRenderInfo(item.name, renderHierarchy)]]"
                name="[[item.name]]"
                template-index="[[_templateIndex]]"
                item-type="incompatible-ops"
              >
              </tf-graph-op-compat-list-item>
            </template>
          </iron-list>
        </div>
      </template>
    </iron-collapse>
  `,a([h({type:Object}),s("design:type","function"==typeof(wv=sg)?wv:Object)],Cv.prototype,"graphHierarchy",void 0),a([h({type:Object}),s("design:type","function"==typeof(Sv=zg)?Sv:Object)],Cv.prototype,"renderHierarchy",void 0),a([h({type:String}),s("design:type",String)],Cv.prototype,"nodeTitle",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Cv.prototype,"_expanded",void 0),a([h({type:String}),s("design:type",String)],Cv.prototype,"_opCompatColor",void 0),a([h({type:String}),s("design:type",String)],Cv.prototype,"_opIncompatColor",void 0),a([h({type:Object}),s("design:type",Object)],Cv.prototype,"_templateIndex",void 0),a([u("graphHierarchy"),s("design:type","function"==typeof(Ev="undefined"!=typeof Array&&Array)?Ev:Object),s("design:paramtypes",[])],Cv.prototype,"_incompatibleOpNodes",null),a([u("graphHierarchy"),s("design:type",Number),s("design:paramtypes",[])],Cv.prototype,"_opCompatScore",null),a([u("_opCompatScore"),s("design:type",String),s("design:paramtypes",[])],Cv.prototype,"_opCompatScoreLabel",null),a([u("graphHierarchy"),s("design:type",Number),s("design:paramtypes",[])],Cv.prototype,"_totalIncompatOps",null),a([p("graphHierarchy"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Cv.prototype,"_graphHierarchyChanged",null),Cv=a([c("tf-graph-op-compat-card")],Cv);let Tv=class extends(pr(Pt)){ready(){super.ready(),this.addEventListener("node-list-item-click",this._nodeListItemClicked.bind(this)),this.addEventListener("node-list-item-mouseover",this._nodeListItemMouseover.bind(this)),this.addEventListener("node-list-item-mouseout",this._nodeListItemMouseout.bind(this))}_nodeListItemClicked(e){this.selectedNode=e.detail.nodeName,this.selectedEdge=null}_nodeListItemMouseover(e){this.highlightedNode=e.detail.nodeName}_nodeListItemMouseout(){this.highlightedNode=null}_checkSelected(e,t){return e&&this.graphHierarchy.node(e)||!!t}};var Nv,Iv,Ov,Lv,Pv;Tv.template=Ot`
    <style>
      :host {
        background: var(--secondary-background-color);
        font-size: 12px;
        margin: 0;
        padding: 0;
        display: block;
        overflow-x: hidden;
        overflow-y: auto;
      }
      h2 {
        padding: 0;
        text-align: center;
        margin: 0;
      }
    </style>
    <template is="dom-if" if="{{_checkSelected(selectedNode, selectedEdge)}}">
      <paper-material elevation class="card">
        <tf-node-info
          id="node-info"
          graph-hierarchy="[[graphHierarchy]]"
          render-hierarchy="[[renderHierarchy]]"
          flat-graph="[[graph]]"
          selected-node="{{selectedNode}}"
          selected-edge="[[selectedEdge]]"
          node-include="[[selectedNodeInclude]]"
          highlighted-node="{{highlightedNode}}"
          tooltips="[[tooltips]]"
        >
        </tf-node-info>
      </paper-material>
    </template>
  `,a([h({type:String}),s("design:type",String)],Tv.prototype,"title",void 0),a([h({type:Object}),s("design:type","function"==typeof(zv=void 0!==sg&&sg)?zv:Object)],Tv.prototype,"graphHierarchy",void 0),a([h({type:Object}),s("design:type","function"==typeof(kv=Pf)?kv:Object)],Tv.prototype,"graph",void 0),a([h({type:Object}),s("design:type","function"==typeof(Mv=zg)?Mv:Object)],Tv.prototype,"renderHierarchy",void 0),a([h({type:String}),s("design:type",String)],Tv.prototype,"compatNodeTitle",void 0),a([h({type:String,notify:!0}),s("design:type",String)],Tv.prototype,"selectedNode",void 0),a([h({type:String,notify:!0}),s("design:type",String)],Tv.prototype,"highlightedNode",void 0),a([h({type:Object,notify:!0}),s("design:type","function"==typeof(Av=i.EdgeData)?Av:Object)],Tv.prototype,"selectedEdge",void 0),a([h({type:Number,notify:!0}),s("design:type",Number)],Tv.prototype,"selectedNodeInclude",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Tv.prototype,"debuggerDataEnabled",void 0),a([h({type:Object}),s("design:type",Object)],Tv.prototype,"tooltips",void 0),Tv=a([c("tf-graph-info")],Tv);let Hv=class extends(pr(Pt)){constructor(){super(...arguments),this.hierarchyParams=cg,this.allStepsModeEnabled=!1,this.compatNodeTitle="TPU Compatibility"}ready(){var e;super.ready();const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.getElementById("resize-handle");if(t){let e=!1,n=0,i=0;t.addEventListener("mousedown",(t=>{t.preventDefault(),e=!0,n=t.clientX,i=t.clientY,document.addEventListener("mousemove",r),document.addEventListener("mouseup",o)}));const r=t=>{var r;if(e){const e=null===(r=this.shadowRoot)||void 0===r?void 0:r.getElementById("graph-info");if(e){const r=e.getBoundingClientRect(),o=r.width+(n-t.clientX),a=r.height+(t.clientY-i);e.style.width=`${Math.max(o,100)}px`,e.style.height=`${Math.max(a,65)}px`,n=t.clientX,i=t.clientY}}},o=()=>{e=!1,document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",o)}}}fit(){this.$.graph.fit()}downloadAsImage(e){return l(this,void 0,void 0,(function*(){const t=yield this.$.graph.getImageBlob(),n=document.createElement("a");n.href=URL.createObjectURL(t),n.download=e,n.click(),URL.revokeObjectURL(n.href)}))}_isNotComplete(e){return e.value<100}_getContainerClass(e){var t="container";return e.error&&(t+=" error"),this._isNotComplete(e)&&(t+=" loading"),t}_onNodeInclusionToggled(e){this.$.graph.nodeToggleExtract(e.detail.name)}_onNodeSeriesGroupToggled(e){this.$.graph.nodeToggleSeriesGroup(e.detail.name)}_updateNodeInclude(){const e=this.renderHierarchy?this.renderHierarchy.getNodeByName(this.selectedNode):null;this._selectedNodeInclude=e?e.include:Nf.UNSPECIFIED}};var Rv,Vv,Bv;Hv.template=Ot`
    <style>
      ::host {
        display: block;
      }

      /deep/ .close {
        position: absolute;
        cursor: pointer;
        left: 15px;
        bottom: 15px;
      }

      .container {
        width: 100%;
        height: 100%;
        opacity: 1;
      }

      .container.loading {
        cursor: progress;
        opacity: 0.1;
      }

      .container.loading.error {
        cursor: auto;
      }

      #info {
        position: absolute;
        right: 5px;
        top: 5px;
        padding: 0px;
        min-width: 400px;
        background-color: rgba(255, 255, 255, 0.9);
        @apply --shadow-elevation-2dp;
      }

      #graph-info {
        position: relative;
        right: 0px;
        top: 0px;
        max-width: 1000px;
        max-height: 90vh;
        min-width: 400px;
        padding: 0px;
      }

      .resize-handle {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 20px;
        height: 20px;
        cursor: ne-resize;
        z-index: 1;
      }

      #main {
        width: 100%;
        height: 100%;
      }

      #progress-bar {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 100%;
        position: absolute;
        top: 40px;
        left: 0;
        font-size: 13px;
      }

      #progress-msg {
        margin-bottom: 5px;
        white-space: pre-wrap;
        width: 400px;
      }

      paper-progress {
        width: 400px;
        --paper-progress-height: 6px;
        --paper-progress-active-color: #f3913e;
      }

      .context-menu {
        position: absolute;
        display: none;
        background-color: #e2e2e2;
        border-radius: 2px;
        font-size: 14px;
        min-width: 150px;
        border: 1px solid #d4d4d4;
      }

      /deep/ .context-menu ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        cursor: default;
      }

      /deep/ .context-menu ul li {
        padding: 4px 16px;
      }

      /deep/ .context-menu ul li:hover {
        background-color: #f3913e;
        color: white;
      }
    </style>
    <template is="dom-if" if="[[_isNotComplete(progress)]]">
      <div id="progress-bar">
        <div id="progress-msg">[[progress.msg]]</div>
        <paper-progress value="[[progress.value]]"></paper-progress>
      </div>
    </template>
    <div class$="[[_getContainerClass(progress)]]">
      <div id="main">
        <tf-graph
          id="graph"
          selection="[[selection]]"
          graph-hierarchy="{{graphHierarchy}}"
          basic-graph="[[graph]]"
          hierarchy-params="[[hierarchyParams]]"
          render-hierarchy="{{renderHierarchy}}"
          devices-for-stats="[[devicesForStats]]"
          stats="[[stats]]"
          selected-node="{{selectedNode}}"
          selected-edge="{{selectedEdge}}"
          highlighted-node="{{_highlightedNode}}"
          progress="{{progress}}"
          edge-label-function="[[edgeLabelFunction]]"
          edge-width-function="[[edgeWidthFunction]]"
          handle-node-selected="[[handleNodeSelected]]"
          handle-edge-selected="[[handleEdgeSelected]]"
          trace-inputs="[[traceInputs]]"
          menu="[[menu]]"
          colorset="[[colorset]]"
          auto-extract-nodes="[[autoExtractNodes]]"
        ></tf-graph>
      </div>
      <div id="info">
        <tf-graph-info
          id="graph-info"
          title="selected"
          graph-hierarchy="[[graphHierarchy]]"
          render-hierarchy="[[renderHierarchy]]"
          graph="[[graph]]"
          selected-node="{{selectedNode}}"
          selected-edge="{{selectedEdge}}"
          selected-node-include="{{_selectedNodeInclude}}"
          highlighted-node="{{_highlightedNode}}"
          debugger-data-enabled="[[debuggerDataEnabled]]"
          debugger-numeric-alerts="[[debuggerNumericAlerts]]"
          tooltips="[[tooltips]]"
          all-steps-mode-enabled="{{allStepsModeEnabled}}"
          compat-node-title="[[compatNodeTitle]]"
          on-node-toggle-inclusion="_onNodeInclusionToggled"
          on-node-toggle-seriesgroup="_onNodeSeriesGroupToggled"
        >
        </tf-graph-info>
        <div class="resize-handle" id="resize-handle">
          <svg width="20px" height="20px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path
              opacity="0.5"
              d="M2 12C2 7.28595 2 4.92893 3.46447 3.46447C4.92893 2 7.28595 2 12 2C16.714 2 19.0711 2 20.5355 3.46447C22 4.92893 22 7.28595 22 12C22 16.714 22 19.0711 20.5355 20.5355C19.0711 22 16.714 22 12 22C7.28595 22 4.92893 22 3.46447 20.5355C2 19.0711 2 16.714 2 12Z"
              fill="#1C274C"
            />
            <path
              fill-rule="evenodd"
              clip-rule="evenodd"
              d="M14 7.75C13.5858 7.75 13.25 7.41421 13.25 7C13.25 6.58579 13.5858 6.25 14 6.25H17C17.4142 6.25 17.75 6.58579 17.75 7V10C17.75 10.4142 17.4142 10.75 17 10.75C16.5858 10.75 16.25 10.4142 16.25 10V8.81066L14.0303 11.0303C13.7374 11.3232 13.2626 11.3232 12.9697 11.0303C12.6768 10.7374 12.6768 10.2626 12.9697 9.96967L15.1893 7.75H14ZM11.0303 12.9697C11.3232 13.2626 11.3232 13.7374 11.0303 14.0303L8.81066 16.25H10C10.4142 16.25 10.75 16.5858 10.75 17C10.75 17.4142 10.4142 17.75 10 17.75H7C6.58579 17.75 6.25 17.4142 6.25 17V14C6.25 13.5858 6.58579 13.25 7 13.25C7.41421 13.25 7.75 13.5858 7.75 14V15.1893L9.96967 12.9697C10.2626 12.6768 10.7374 12.6768 11.0303 12.9697Z"
              fill="#1C274C"
            />
          </svg>
        </div>
      </div>
    </div>
  `,a([h({type:Object}),s("design:type","function"==typeof(Nv=sg)?Nv:Object)],Hv.prototype,"graphHierarchy",void 0),a([h({type:Object}),s("design:type","function"==typeof(Iv=Pf)?Iv:Object)],Hv.prototype,"graph",void 0),a([h({type:Object}),s("design:type","function"==typeof(Ov=t.HierarchyParams)?Ov:Object)],Hv.prototype,"hierarchyParams",void 0),a([h({type:Object}),s("design:type",Object)],Hv.prototype,"stats",void 0),a([h({type:Object}),s("design:type",Object)],Hv.prototype,"progress",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Hv.prototype,"traceInputs",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Hv.prototype,"autoExtractNodes",void 0),a([h({type:Object,notify:!0}),s("design:type","function"==typeof(Lv=zg)?Lv:Object)],Hv.prototype,"renderHierarchy",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Hv.prototype,"debuggerDataEnabled",void 0),a([h({type:Array,notify:!0}),s("design:type",Array)],Hv.prototype,"debuggerNumericAlerts",void 0),a([h({type:Boolean,notify:!0}),s("design:type",Boolean)],Hv.prototype,"allStepsModeEnabled",void 0),a([h({type:Object}),s("design:type",Object)],Hv.prototype,"menu",void 0),a([h({type:Object}),s("design:type",Object)],Hv.prototype,"colorset",void 0),a([h({type:String,notify:!0}),s("design:type",String)],Hv.prototype,"selectedNode",void 0),a([h({type:Object,notify:!0}),s("design:type","function"==typeof(Pv=i.EdgeData)?Pv:Object)],Hv.prototype,"selectedEdge",void 0),a([h({type:String}),s("design:type",String)],Hv.prototype,"compatNodeTitle",void 0),a([h({type:Object}),s("design:type",Object)],Hv.prototype,"edgeWidthFunction",void 0),a([h({type:Number}),s("design:type",Number)],Hv.prototype,"_selectedNodeInclude",void 0),a([h({type:String}),s("design:type",String)],Hv.prototype,"_highlightedNode",void 0),a([h({type:Object}),s("design:type",Object)],Hv.prototype,"handleNodeSelected",void 0),a([h({type:Object}),s("design:type",Object)],Hv.prototype,"edgeLabelFunction",void 0),a([h({type:Object}),s("design:type",Object)],Hv.prototype,"handleEdgeSelected",void 0),a([h({type:Object}),s("design:type",Object)],Hv.prototype,"selection",void 0),a([h({type:Object}),s("design:type",Object)],Hv.prototype,"tooltips",void 0),a([p("selectedNode","renderHierarchy"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Hv.prototype,"_updateNodeInclude",null),Hv=a([c("tf-graph-board")],Hv);let Dv=class extends(pr(Pt)){constructor(){super(...arguments),this._datasets=[],this._datasetsFetched=!1,this._selectedDataset=0,this._requestManager=new ss,this._canceller=new ts,this._debuggerNumericAlerts=[],this.run=Os("run",{defaultValue:"",useLocalStorage:!1}).call(this),this._runObserver=Ls("run",{defaultValue:"",polymerProperty:"run",useLocalStorage:!1})}attached(){this.set("_isAttached",!0)}detached(){this.set("_isAttached",!1)}ready(){super.ready()}reload(){this._debuggerDataEnabled||this._requestManager.request(hs().pluginsListing()).then(this._canceller.cancellable((e=>{e.cancelled||e.value.debugger&&this.set("_debuggerDataEnabled",!0)})))}_fit(){this.$$("#graphboard").fit()}_onDownloadImageRequested(e){this.$$("#graphboard").downloadAsImage(e.detail)}_getGraphDisplayClassName(e,t){return e||t.length?"":"no-graph"}_fetchDataset(){return this._requestManager.request(hs().pluginRoute("graph_ascend","/info"))}_fetchDebuggerNumericsAlerts(){return this._requestManager.request(hs().pluginRoute("debugger","/numerics_alert_report"))}_maybeInitializeDashboard(){var e=this._isAttached;!this._initialized&&e&&(this.set("_compatibilityProvider",new Wm),this._initialized=!0,this._fetchDataset().then((e=>{const t=Object.keys(e);this._datasets=t.sort(Qs).map((t=>{const n=e[t],i=Object.keys(n.tags).sort(Qs).map((e=>n.tags[e])).map((({tag:e,conceptual_graph:t,op_graph:n,profile:i})=>({tag:e,displayName:e,conceptualGraph:t,opGraph:n,profile:i})));return{name:t,tags:n.run_graph?[{tag:null,displayName:"Default",conceptualGraph:!1,opGraph:!0,profile:!1},...i]:i}})),this._datasetsFetched=!0})))}_determineSelectedDataset(){var e=this._datasetsFetched,t=this._datasets,n=this.run;if(!n)return void this.set("_selectedDataset",0);const i=t.findIndex((e=>e.name===n));if(-1!==i)this.set("_selectedDataset",i);else if(e){const e=this.$$("#error-dialog");e.textContent=`No dataset named "${n}" could be found.`,e.open()}}_updateSelectedDatasetName(){var e=this._datasetsFetched,t=this._datasets,n=this._selectedDataset;e&&(t.length<=n||this.set("run",t[n].name))}_datasetsState(e,t,n){return e?t&&t.length?"PRESENT"===n:"EMPTY"===n:"NOT_LOADED"===n}_renderHierarchyChanged(e){this.reload()}};Dv.template=Ot`
    <paper-dialog id="error-dialog" with-backdrop></paper-dialog>
    <tf-dashboard-layout>
      <tf-graph-controls
        id="controls"
        class="sidebar"
        slot="sidebar"
        devices-for-stats="{{_devicesForStats}}"
        menu="[[_menu]]"
        colors="[[_colors]]"
        colorset="[[_colorset]]"
        microsteps="[[_microsteps]]"
        steplist="[[_steplist]]"
        unmatched="[[_unmatched]]"
        matchedlist="[[_matchedlist]]"
        datasets="[[_datasets]]"
        render-hierarchy="[[_renderHierarchy]]"
        selection="{{_selection}}"
        selected-file="{{_selectedFile}}"
        selected-node="{{_selectedNode}}"
        on-fit-tap="_fit"
        trace-inputs="{{_traceInputs}}"
        auto-extract-nodes="{{_autoExtractNodes}}"
        on-download-image-requested="_onDownloadImageRequested"
      ></tf-graph-controls>
      <div class$="center [[_getGraphDisplayClassName(_selectedFile, _datasets)]]" slot="center">
        <tf-graph-dashboard-loader
          id="loader"
          datasets="[[_datasets]]"
          selection="[[_selection]]"
          selected-file="[[_selectedFile]]"
          out-graph-hierarchy="{{_graphHierarchy}}"
          out-graph="{{_graph}}"
          out-stats="{{_stats}}"
          tooltips="{{_tooltips}}"
          menu="{{_menu}}"
          colorset="{{_colorset}}"
          colors="{{_colors}}"
          microsteps="{{_microsteps}}"
          steplist="{{_steplist}}"
          unmatched="{{_unmatched}}"
          matchedlist="{{_matchedlist}}"
          progress="{{_progress}}"
          hierarchy-params="[[_hierarchyParams]]"
          compatibility-provider="[[_compatibilityProvider]]"
        ></tf-graph-dashboard-loader>
        <div class="no-data-message">
          <h3>No graph definition files were found.</h3>
          <p>
            To store a graph, create a
            <code>tf.summary.FileWriter</code>
            and pass the graph either via the constructor, or by calling its
            <code>add_graph()</code> method. You may want to check out the
            <a href="https://www.tensorflow.org/tensorboard/graphs">examining the TensorFlow graph tutorial</a>.
          </p>

          <p>
            If you’re new to using TensorBoard, and want to find out how to add data and set up your event files, check
            out the
            <a href="https://github.com/tensorflow/tensorboard/blob/master/README.md">README</a>
            and perhaps the
            <a href="https://www.tensorflow.org/get_started/summaries_and_tensorboard">TensorBoard tutorial</a>.
          </p>

          <p>
            If you think TensorBoard is configured properly, please see
            <a
              href="https://github.com/tensorflow/tensorboard/blob/master/README.md#my-tensorboard-isnt-showing-any-data-whats-wrong"
              >the section of the README devoted to missing data problems</a
            >
            and consider filing an issue on GitHub.
          </p>
        </div>
        <div class="graphboard">
          <tf-graph-board
            id="graphboard"
            selection="[[_selection]]"
            devices-for-stats="[[_devicesForStats]]"
            graph-hierarchy="[[_graphHierarchy]]"
            graph="[[_graph]]"
            hierarchy-params="[[_hierarchyParams]]"
            progress="[[_progress]]"
            debugger-data-enabled="[[_debuggerDataEnabled]]"
            debugger-numeric-alerts="[[_debuggerNumericAlerts]]"
            all-steps-mode-enabled="{{allStepsModeEnabled}}"
            render-hierarchy="{{_renderHierarchy}}"
            selected-node="{{_selectedNode}}"
            stats="[[_stats]]"
            trace-inputs="[[_traceInputs]]"
            auto-extract-nodes="[[_autoExtractNodes]]"
            tooltips="[[_tooltips]]"
          ></tf-graph-board>
        </div>
      </div>
    </tf-dashboard-layout>
    <style>
      :host /deep/ {
        font-family: 'Roboto', sans-serif;
      }

      .sidebar {
        display: flex;
        height: 100%;
      }

      .center {
        position: relative;
        height: 100%;
      }

      paper-dialog {
        padding: 20px;
      }

      .no-data-message {
        max-width: 540px;
        margin: 80px auto 0 auto;
      }

      .graphboard {
        height: 100%;
      }

      .no-graph .graphboard {
        display: none;
      }

      .center:not(.no-graph) .no-data-message {
        display: none;
      }

      a {
        color: var(--tb-link);
      }

      a:visited {
        color: var(--tb-link-visited);
      }
    </style>
  `,a([h({type:Array}),s("design:type",Array)],Dv.prototype,"_datasets",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Dv.prototype,"_datasetsFetched",void 0),a([h({type:Number}),s("design:type",Number)],Dv.prototype,"_selectedDataset",void 0),a([h({type:Object,observer:"_renderHierarchyChanged"}),s("design:type","function"==typeof(Rv=zg)?Rv:Object)],Dv.prototype,"_renderHierarchy",void 0),a([h({type:Object}),s("design:type","function"==typeof(Vv=void 0!==ss&&ss)?Vv:Object)],Dv.prototype,"_requestManager",void 0),a([h({type:Object}),s("design:type","function"==typeof(Bv=void 0!==ts&&ts)?Bv:Object)],Dv.prototype,"_canceller",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Dv.prototype,"_debuggerDataEnabled",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Dv.prototype,"allStepsModeEnabled",void 0),a([h({type:String,notify:!0}),s("design:type",String)],Dv.prototype,"selectedNode",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Dv.prototype,"_isAttached",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Dv.prototype,"_initialized",void 0),a([h({type:Array,notify:!0}),s("design:type",Array)],Dv.prototype,"_debuggerNumericAlerts",void 0),a([h({type:Array}),s("design:type",Array)],Dv.prototype,"runs",void 0),a([h({type:String,notify:!0,observer:"_runObserver"}),s("design:type",String)],Dv.prototype,"run",void 0),a([h({type:Object}),s("design:type",Object)],Dv.prototype,"_selection",void 0),a([h({type:Object}),s("design:type",Object)],Dv.prototype,"_compatibilityProvider",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Dv.prototype,"_traceInputs",void 0),a([h({type:Boolean}),s("design:type",Boolean)],Dv.prototype,"_autoExtractNodes",void 0),a([h({type:Object}),s("design:type",Object)],Dv.prototype,"_selectedFile",void 0),a([p("_isAttached"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Dv.prototype,"_maybeInitializeDashboard",null),a([p("_datasetsFetched","_datasets","run"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Dv.prototype,"_determineSelectedDataset",null),a([p("_datasetsFetched","_datasets","_selectedDataset"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],Dv.prototype,"_updateSelectedDatasetName",null),Dv=a([c("graph-app")],Dv);var Fv=n(5072),jv=n.n(Fv),Uv=n(7825),$v=n.n(Uv),Gv=n(7659),qv=n.n(Gv),Xv=n(5056),Wv=n.n(Xv),Kv=n(540),Yv=n.n(Kv),Jv=n(1113),Zv=n.n(Jv),Qv=n(6523),ey={};ey.styleTagTransform=Zv(),ey.setAttributes=Wv(),ey.insert=qv().bind(null,"head"),ey.domAPI=$v(),ey.insertStyleElement=Yv(),jv()(Qv.A,ey),Qv.A&&Qv.A.locals&&Qv.A.locals})()})();</script></body></html>